GrantPSpencer opened a new pull request, #2867: URL: https://github.com/apache/helix/pull/2867
### Issues - [ ] My PR addresses the following Helix issues and references them in the PR description: While the SwapIn operation is in progress, the swapIn node does not consider the disabled partitions on the swapIn node. ### Description - [ ] Here are some details about my PR, including screenshots of any UI changes: selectSwapInState now considers whether the swapIn node has any disabled resources. This is done by passing the ResourceControllerDataProvider cache to the method to determine if the partition is disabled on the node. If the partition is disabled, then the intended state will be OFFLINE, this can lead to 2 scenarios: 1. If the swapIn node's partition is disabled PRIOR to it being assigned the partition as part of the swap operation, then it will not be assigned the partition until the partition is reenabled. This is because the IS says offline, and we do not send state transition DROPPED --> OFFLINE. 2. If the swapIn node's partition is disabled AFTER being assigned the partition as part of the swap operation, then it will downward transit those partitions to the OFFLINE state. In both of these cases, the swap operation cannot complete while partitions are disabled because it does not have the intended state of the swapOut node. In both of these cases, re-enabling the partitions will then cause the swap operation to proceed as normal. This PR also includes some minor changes to other tests within the same integrration test file to address potential flakiness and further isolate each test method. ### Tests - [ ] The following tests are written for this issue: testDisabledPartitionsBeforeSwapInitiated testDisabledPartitionsAfterSwapInitiated - The following is the result of the "mvn test" command on the appropriate module: (If CI test fails due to known issue, please specify the issue and test PR locally. Then copy & paste the result of "mvn test" to here.) ### Changes that Break Backward Compatibility (Optional) - My PR contains changes that break backward compatibility or previous assumptions for certain methods or API. They include: N/A ### Commits - My commits all reference appropriate Apache Helix GitHub issues in their subject lines. In addition, my commits follow the guidelines from "[How to write a good git commit message](http://chris.beams.io/posts/git-commit/)": 1. Subject is separated from body by a blank line 1. Subject is limited to 50 characters (not including Jira issue reference) 1. Subject does not end with a period 1. Subject uses the imperative mood ("add", not "adding") 1. Body wraps at 72 characters 1. Body explains "what" and "why", not "how" ### Code Quality - My diff has been formatted using helix-style.xml (helix-style-intellij.xml if IntelliJ IDE is used) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: reviews-unsubscr...@helix.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@helix.apache.org For additional commands, e-mail: reviews-h...@helix.apache.org