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

Review request for geode, Darrel Schneider, Kirk Lund, and Udo Kohlmeyer.


Bugs: GEODE-2024
    https://issues.apache.org/jira/browse/GEODE-2024


Repository: geode


Description
-------

This change-set causes the code in TXLockServiceImpl.release() to perform 
periodic checks to see if grantor recovery is being performed.  If so it skips 
releaseTryLocks, which requires a recovered grantor to function.  This is in 
line with the previous attempts to fix this problem.  The recovery message that 
is trying to obtain the recovery write-lock now sets the "recovering" state in 
TXLockServiceImpl prior to attempting to get the lock so that it is set when 
TXLockServiceImpl.release() checks its state.


Diffs
-----

  
geode-core/src/main/java/org/apache/geode/distributed/internal/locks/DLockRecoverGrantorProcessor.java
 37fbfbe978437db15ba1d3439b28fdcc7eb0cee8 
  
geode-core/src/main/java/org/apache/geode/distributed/internal/locks/DLockService.java
 a859299a3581939740f6c62cc759179bfdd22ee1 
  
geode-core/src/main/java/org/apache/geode/internal/cache/locks/TXLockServiceImpl.java
 f4ab02feb67490da03209d8953da30c0415e4677 
  
geode-core/src/main/java/org/apache/geode/internal/cache/locks/TXRecoverGrantorMessageProcessor.java
 77dec946d920bf4f6d3f732c9d68f7c94bd7ea01 
  
geode-core/src/test/java/org/apache/geode/internal/cache/locks/TXLockServiceDUnitTest.java
 fb16ea9e50da205322b17a9f46d6153729bf3850 

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


Testing
-------

TXLockServiceDUnitTest had a test for previous occurences of this problem but 
it was marked @Ignore.  I've fixed the timing issues with that test but it 
wasn't quite modeling what happened in the GEODE-2024 failure so I added 
another test for grantor fail-over.  The new test ensures that another member 
is the grantor prior to obtaining TX locks.  Then it initiates grantor failover 
and tells the TXLockService to release its locks.


Thanks,

Bruce Schuchardt

Reply via email to