[infinispan-issues] [JBoss JIRA] Created: (ISPN-1100) TransactionLogger Not Unlocked/Disabled
Shane Johnson (JIRA)
jira-events at lists.jboss.org
Thu May 12 11:19:31 EDT 2011
TransactionLogger Not Unlocked/Disabled
---------------------------------------
Key: ISPN-1100
URL: https://issues.jboss.org/browse/ISPN-1100
Project: Infinispan
Issue Type: Bug
Components: Distributed Cache
Affects Versions: 4.2.1.FINAL
Reporter: Shane Johnson
Assignee: Manik Surtani
If rehashing is DISABLED, the transaction logger is NOT unlocked and disabled for sender / receivers.
Typically the process is as follows:
1) Enable the transaction logger. (DistributionManagerImpl.rehash)
2) Submit InvertedLeaveTask. (DistributionManagerImpl.rehash)
3) Block new transactions if this is a receiver. (InvertedLeaveTask.performRehash)
4) Process / Drain transaction log if this is a sender. (InvertedLeaveTask.performRehash)
5) Unblock new transactions if this is a receiver.
The problem is that step 4 is only performed if rehashing is enabled. This is the step that eventually unlocks and disables the transaction logger.
Our temporary fix was to add an 'else' block that called 'processAndDrainTxLog'.
if (configuration.isRehashEnabled()) {
...
}
else {
processAndDrainTxLog(oldCH, newCH, replCount);
}
So far, it seems to be working. Our cluster is stable.
Of note is that we did not keep the 'isSender' check. When we used it, the transaction log remained enabled on any node that was ONLY a receiver.
I suspect this is because during a standard rehash the RemoteTransactionLogger sends a RehashControlCommand that ultimately unlocks and disables the transaction logger? This would place the responsibility on the sender and ensure that ALL receivers do so.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the infinispan-issues
mailing list