]
Mark Little commented on JBTM-2256:
-----------------------------------
OK. I'm more interested in ensuring we have some (semi)automated test to verify the
fix and that nothing like this creeps in again. How that is done is not that important.
Race condition between recovery manager initialization and expiry
scanner
-------------------------------------------------------------------------
Key: JBTM-2256
URL:
https://issues.jboss.org/browse/JBTM-2256
Project: JBoss Transaction Manager
Issue Type: Bug
Components: Transaction Core
Reporter: Gytis Trikleris
Assignee: Gytis Trikleris
Fix For: 4.17.23, 5.0.4
In a constructor of RecoveryManagerImple expiry scanner is started before initiating
PeriodicRecovery. This causes a problem from time to time, because during the initiation
of PeriodicRecovery (more exact XARecoveryModule) ExtendedResourceRecord is added to the
RecordTypeManager. It has to be there during the expiry scan execution. Since expiry
scanner works in a separate thread it works most of the time, but race condition still
exists. Personally I couldn't reproduce the problem.
Swapping these two actions should solve the problem.