Transaction commit and abort cannot be performed from a different Thread

Bug #1174352 reported by Peter Beaman on 2013-04-29
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Akiban Persistit
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) on 2013-04-29
Changed in akiban-persistit:
assignee: nobody → Peter Beaman (pbeaman)
Peter Beaman (pbeaman) on 2013-04-30
Changed in akiban-persistit:
milestone: none → future
milestone: future → none
Peter Beaman (pbeaman) on 2013-05-15
Changed in akiban-persistit:
status: Confirmed → Fix Committed
Peter Beaman (pbeaman) on 2013-05-16
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  Edit
Everyone can see this information.

Other bug subscribers