Transaction commit and abort cannot be performed from a different Thread

Bug #1174352 reported by Peter Beaman
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Akiban Persistit
Fix Released
High
Peter Beaman

Bug Description

Documentation for com.persistit.Transaction says that with careful management of ownership of a SessionId, it is possible to complete a transaction in a different thread than the one that began it. However, this is not the case: the second thread receives an IllegalMonitorStateException when attempting to commit or abort the transaction.

The issue is that the TransactionStatus object used to represent transaction state within the TransactionIndex uses a java.util.concurrent.locks.ReentrantLock to represent its in-use state, and only the thread that locked it may unlock it.

Related branches

Peter Beaman (pbeaman)
Changed in akiban-persistit:
assignee: nobody → Peter Beaman (pbeaman)
Peter Beaman (pbeaman)
Changed in akiban-persistit:
milestone: none → future
milestone: future → none
Peter Beaman (pbeaman)
Changed in akiban-persistit:
status: Confirmed → Fix Committed
Peter Beaman (pbeaman)
Changed in akiban-persistit:
status: Fix Committed → Fix Released
Changed in akiban-persistit:
milestone: none → 3.3.0
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.