-----------------------------------------------------------
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