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

----


---

Reply via email to