Assertion failure in TransactionIndexBucket#allocateTransactionStatus

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

Bug Description

Observed in 8-hour stress test run.

Stress2txn [Thread-1154] FAILED [Thread-1154]: java.lang.AssertionError
        at com.persistit.TransactionIndexBucket.allocateTransactionStatus(TransactionIndexBucket.java:177)
        at com.persistit.TransactionIndex.registerTransaction(TransactionIndex.java:560)
        at com.persistit.TransactionIndex.registerTransaction(TransactionIndex.java:527)
        at com.persistit.Transaction.begin(Transaction.java:595)
        at com.persistit.Transaction.run(Transaction.java:979)
        at com.persistit.stress.unit.Stress2txn.executeTest(Stress2txn.java:121)
        at com.persistit.stress.AbstractStressTest.run(AbstractStressTest.java:89)
        at java.lang.Thread.run(Thread.java:662)

The likely culprit is that commitStatus() briefly locks and then unlocks a TransactionStatus and this assert is caused by a race.

Note that this bug has exactly the same title as

https://bugs.launchpad.net/bugs/932097

but is caused by an entirely different mechanism. The bug is benign in that the assert is on a transient condition that will be rectified shortly. The solution will be to test the isLocked() condition, and if set briefly tryLock to wait for the thread performing commitStatus to finish.

Related branches

Peter Beaman (pbeaman)
Changed in akiban-persistit:
status: New → Confirmed
assignee: nobody → Peter Beaman (pbeaman)
Peter Beaman (pbeaman)
Changed in akiban-persistit:
status: Confirmed → Fix Committed
Peter Beaman (pbeaman)
Changed in akiban-persistit:
status: Fix Committed → Fix Released
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.