Clone
Ondrej Chaloupka
committed
on 29 Nov 18
[JBTM-3079] InboundBridge recovery aborts live transactions
During a recovery pass, the InboundBridgeRecoveryManager scans for subordinate X… Show more
[JBTM-3079] InboundBridge recovery aborts live transactions

During a recovery pass, the InboundBridgeRecoveryManager scans for subordinate XA branches that may need cleanup. The filtering process applied by checkXid correctly excludes tx that are not owned by the bridge, but fails to ignore those that are owned but also still live. Therefore, a race condition exists such that the recovery process may incorrectly abort a branch if invoked between the prepare and commit steps, resulting in data corruption relative to other committed branches from the parent i.e. Heuristic outcomes.

Show less