-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/52805/
-----------------------------------------------------------

Review request for geode, Barry Oglesby and nabarun nag.


Repository: geode


Description
-------

When executing a function from a client, we can be adding results to the
result collector from multiple threads. Our docs claim the user should
not have to synchronize their result collector. One code path was already
synchronizing on the collector when adding results. However, if the
function returned an exception we were not synchronizing.

Adding a SynchronizedResultCollector and wrapping the users collector in
that to ensure that there will be no unsynchronized access of the result
collector.


Diffs
-----

  
geode-core/src/main/java/org/apache/geode/cache/client/internal/ExecuteFunctionOp.java
 6597b680227fb47492dc973baecffd504d6cdf68 
  
geode-core/src/main/java/org/apache/geode/cache/client/internal/ExecuteRegionFunctionSingleHopOp.java
 51ea8e4fbc64acbbd1165856a2dd09704d63e857 
  
geode-core/src/main/java/org/apache/geode/internal/cache/execute/ServerFunctionExecutor.java
 4295898583aff1409bf6acdd84c5a4c8a8709e51 
  
geode-core/src/main/java/org/apache/geode/internal/cache/execute/ServerRegionFunctionExecutor.java
 b5bc684e0b29bfc62dd958ccff49d47c2bad36fa 
  
geode-core/src/main/java/org/apache/geode/internal/cache/execute/util/SynchronizedResultCollector.java
 PRE-CREATION 

Diff: https://reviews.apache.org/r/52805/diff/


Testing
-------

Ran the affected test 500 times with this fix. It failed 11 times without it, 
passed with the fix.


Thanks,

Dan Smith

Reply via email to