Description of problem: Having an aborted DTX transaction in TplStore, store_chk raises "Operation on non-existent record: operation=unlock; rid=.." error. Version-Release number of selected component (if applicable): any (incl. qpid 0.26) How reproducible: 100% Steps to Reproduce: 1. Prepare and abort a DTX transaction (e.g. by replacing "dtxCommit" by "dtxRollback" in qpid-txtest.cpp, recompiling it and running it with --dtx=1 argument) 2. /usr/libexec/qpid/store_chk /var/lib/qpidd/rhm/tpl -b tpl Actual results: Recovering journals . Operation on non-existent record: operation=unlock; rid=0x2311c Expected results: Journals recovered properly. Additional info:
Created attachment 857799 [details] Proposed patch Though I did not understand full logic of emap / map in janal.py, the extra condition in _abort prevents raising the error and allows proper processing of the abort.
Upstream review request: https://reviews.apache.org/r/17587/
Created attachment 858071 [details] Patch committed to upstream
Committed to upstream as r1563387.
This bug was accidentally moved from POST to MODIFIED via an error in automation, please see mmccune with any questions