Pavel Moravec created QPID-5531: ----------------------------------- Summary: [C++ broker] Set timeout for every DTX transaction Key: QPID-5531 URL: https://issues.apache.org/jira/browse/QPID-5531 Project: Qpid Issue Type: Bug Components: C++ Broker Affects Versions: 0.24 Reporter: Pavel Moravec Assignee: Pavel Moravec Priority: Minor
Description of problem: If an external Transaction Manager (TM) prepares a DTX transaction but forgets, due to any reason, to commit or abort it, tpl journal has an orphaned enqueue record forever (that in legacystore causes enqueue capacity threshold exception after a while, preventing _any_ transaction to commit/abort). To prevent such orphaned XID entries in tpl, every incoming DTX transaction should have a default timeout set (while dtx.set-timeout AMQP 0-10 primitive changes it). The timeout should be broker-wide parameter configurable via --dtx-default-timeout option. Version-Release number of selected component (if applicable): any (incl upstream 0.26) How reproducible: 100% Steps to Reproduce: 1. Mimic an external TM that prepares a DTX but never commits or aborts it - use e.g. _modified_ qpid-txtest (patch attached): qpid-txtest --queues=1 --total-messages=1 --dtx=1 --dtx-commit=no 2. /usr/libexec/qpid/store_chk /var/lib/qpidd/rhm/tpl -b tpl Actual results: tpl journal keeps the unfinished transaction forever Expected results: sleeping for dtx-default-timeout, the transaction should be gone -- This message was sent by Atlassian JIRA (v6.1.5#6160) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org