Merge lp:~pbeaman/akiban-persistit/add-lock2 into lp:akiban-persistit
Proposed by
Peter Beaman
Status: | Merged |
---|---|
Approved by: | Nathan Williams |
Approved revision: | 428 |
Merged at revision: | 418 |
Proposed branch: | lp:~pbeaman/akiban-persistit/add-lock2 |
Merge into: | lp:akiban-persistit |
Diff against target: |
26 lines (+8/-7) 1 file modified
src/main/java/com/persistit/Transaction.java (+8/-7) |
To merge this branch: | bzr merge lp:~pbeaman/akiban-persistit/add-lock2 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Nathan Williams | Approve | ||
Review via email: mp+145976@code.launchpad.net |
Description of the change
Make the status fields (e.g., _commitCompleted) volatile. Use of a Transaction instance is almost entirely thread-private, but the CLEANUP_MANAGER thread looks at the transaction state of Transaction instances that formerly belonged to now-ended threads. I believe a failure we are seeing in WriteSkewIT is caused by an intermittent failure to read that state coherently. Specifically, it is trying to run rollback on a Transaction that actually has already been rolled back (by its own thread), and that attempt is throwing an IllegalMonitorS
To post a comment you must log in.
Sounds plausible.