Deadlock detected in nightly stress tests
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Akiban Persistit |
Fix Released
|
Critical
|
Peter Beaman |
Bug Description
Deadlock caused the MixtureTxn2 suite to fail a couple of times. Relevant threads:
Stress5 [main] FAILED: com.persistit.
r1 <CLEANUP_MANAGER> type=Data
at com.persistit.
at com.persistit.
at com.persistit.
at com.persistit.
at com.persistit.
at com.persistit.
at com.persistit.
at com.persistit.
at java.lang.
Stress1 [main] FAILED: com.persistit.
at com.persistit.
at com.persistit.
at com.persistit.
at com.persistit.
at com.persistit.
at com.persistit.
at com.persistit.
at com.persistit.
at java.lang.
(Unfortunately due to bug in the stress test framework the thread names are incorrect. Therefore we can't tell which of the many stack traces like the second one represents the deadlock partner, but the relevant information is that VolumeStructure
Related branches
- Akiban Build User: Needs Fixing
- Nathan Williams: Approve
-
Diff: 965 lines (+391/-134)18 files modifiedsrc/main/java/com/persistit/Buffer.java (+43/-11)
src/main/java/com/persistit/BufferPool.java (+41/-29)
src/main/java/com/persistit/CleanupManager.java (+1/-1)
src/main/java/com/persistit/Exchange.java (+3/-1)
src/main/java/com/persistit/IOTaskRunnable.java (+14/-5)
src/main/java/com/persistit/JournalManager.java (+1/-1)
src/main/java/com/persistit/MVV.java (+1/-2)
src/main/java/com/persistit/SessionId.java (+9/-0)
src/main/java/com/persistit/SharedResource.java (+7/-2)
src/main/java/com/persistit/Tree.java (+1/-1)
src/main/java/com/persistit/Value.java (+2/-2)
src/main/java/com/persistit/VolumeStorageV2.java (+1/-2)
src/main/java/com/persistit/VolumeStructure.java (+127/-68)
src/test/java/com/persistit/FastIndexTest.java (+1/-1)
src/test/java/com/persistit/MVCCPruneBufferTest.java (+27/-6)
src/test/java/com/persistit/VolumeStructureTest.java (+104/-0)
src/test/java/com/persistit/stress/unit/Stress2txn.java (+7/-1)
src/test/java/com/persistit/stress/unit/Stress6.java (+1/-1)
visibility: | private → public |
Changed in akiban-persistit: | |
milestone: | none → future |
Changed in akiban-persistit: | |
milestone: | future → 3.1.8 |
Changed in akiban-persistit: | |
status: | Confirmed → Fix Committed |
Changed in akiban-persistit: | |
status: | Fix Committed → Fix Released |
Originally rated this as High due to the relative difficulty in reproducing it. However, the bug mechanism is very simple and could easily occur at a customer site, so I am moving this to Critical. Besides, we need the stress tests to run for days, not hours, and this is a blocker.