[ https://issues.apache.org/jira/browse/QPID-5531?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13889342#comment-13889342 ]
Pavel Moravec commented on QPID-5531: ------------------------------------- Hi Jakub, Reading 0-10 specification(*), broker has no ability to refuse client's timeout, whatever high it is. So the best the broker can do (to follow specification) is to log a warning/error. With respect t that, I think the second broker option would be less required. Do you see it as sufficient to add test like: if (client_setting_timeout > dtx-default-timeout) QPID_LOG(warn, "some warning"); ? (*) AMQP 1.0 does not have specified DTX at all, so far, so ignoring it here > [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 > Labels: patch > Attachments: QPID-5531.patch, qpid-txtest_modified.patch > > > 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