GitHub user revans2 opened a pull request: https://github.com/apache/storm/pull/2622
STORM-3020: fix possible race condition in AsyncLocalizer There were a number of places in AsyncLocalizer that were using synchronized to try and protect some maps. When we added in support for restarting a worker if specific blobs change one of the places that was protected before moved to a background thread and lost that protection. Now that we are java 8 we can use lambdas to provide the same protection without the need for the locks so I removed all of the course grained locking in AsyncLocalizer. Now the only locking is on a per-blob basis. I tested this manually by launching topologies with lots of different types of blobs, modified the blobs and verified that everything worked correctly. I shot things, including the supervisor, various times and verified that it was able to recover in each case. You can merge this pull request into a Git repository by running: $ git pull https://github.com/revans2/incubator-storm STORM-3020 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/storm/pull/2622.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #2622 ---- commit 337aef8f1291aba0ab228f6e9e0800c19b8c5ceb Author: Robert (Bobby) Evans <evans@...> Date: 2018-04-03T19:58:14Z STORM-3020: fix possible race condition in AsyncLocalizer ---- ---