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

Review request for geode and vivek bhaskar.


Repository: geode


Description
-------

In the context of distributed transactions, 
DistributedPutAllOperation.createPRMessages calls 
putAllData[i].setFakeEventID() to set event ID for each entry in put all op 
(called from 
DistTXStateProxyImplOnCoordinator.postPutAll->DistPeerTXStateStub.postPutAll->TXStateStub.postPutAll
 -> PartitionedTXRegionStub.postPutAll). However when the data node itself is a 
transaction coordinator,
createPRMessages is not called and the data is locally put by calling 
DistTXStateProxyImplOnCoordinator.postPutAll->DistTXStateOnCoordinator.postPutAll().
 This call sequence does not call putAllData[i].setFakeEventID(). At the commit 
time when the coordinator sends TX events to secondaries, some of the events 
from different buckets had same event ID. This caused TXState.txPutEntry() to 
skip those events (assuming that the entry has been processed already) and 
therefore the test failed.  The fix is to call 
putallOp.putAllData[i].setFakeEventID() in 
DistTXStateProxyImplOnCoordinator.postPutAll so that eventID is set for all 
entries. Similar fix is done for remove all.

Also enabled the assertion that was surrounded by logger.isDebugEnabled() call 
due to this issue

Fix is specific to Distributed TX (feature under development).


Diffs
-----

  
gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/DistTXStateProxyImplOnCoordinator.java
 2f79605 
  
gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/TXRegionState.java
 67cb8c5 

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


Testing
-------

./gradlew gemfire-core:integrationTest -DintegrationTest.single=*DistTX*JUnit*
./gradlew -DdistributedTest.single=DistTXDistributedTestSuite 
gemfire-core:distributedTest
100 runs DistributedTransactionDUnitTest successful


Thanks,

Shirish Deshmukh

Reply via email to