zpinto opened a new pull request, #2746: URL: https://github.com/apache/helix/pull/2746
### Issues - [x] For large clusters which take a long time to finish global and partial rebalance, there is a race condition. When assignableInstanceConfigMap and other related Maps and Sets are cleared and rebuilt, the async global and partial rebalance pipelines attempt to iterate through them. ### Description Because we called clear() on the Maps and Sets in the cache while the global or partial rebalance is iterating over them, we have seen many ConcurrentModificationError exceptions causing these pipelines to fail. To remediate this, we will build new Maps and Sets on cache refresh and swap out the old Maps and Sets after we have built the new ones. ### Tests - [x] No new tests are necessary, should keep the same behavior. ### Changes that Break Backward Compatibility (Optional) NA ### Documentation (Optional) NA ### 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
