[
https://issues.apache.org/jira/browse/QPID-5531?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Pavel Moravec updated QPID-5531:
--------------------------------
Attachment: QPID-5531.patch
Proposed patch
--dtx-default-timeout option added with default value 3600 seconds.
Tried the reproducer on broker with --dtx-default-timeout=60, and the
transaction was gone after one minute.
NOT tested (even built) ms-sql and/or ms-clfs store.
> [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: [email protected]
For additional commands, e-mail: [email protected]