qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "JAkub Scholz (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (QPID-5531) [C++ broker] Set timeout for every DTX transaction
Date Mon, 03 Feb 2014 08:58:08 GMT

    [ https://issues.apache.org/jira/browse/QPID-5531?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13889327#comment-13889327

JAkub Scholz commented on QPID-5531:

Hi Pavel,

This introduces the default timeout, which is definitely very useful. But according to my
understanding, if the client specifies the timeout, it can be still set to some very long
time and thus still cause the original problem. It would be great to have not only the --dtx-default-timeout
option, but also some --dtx-max-timeout option which would either override the timeout specified
by the client or trigger an error when the client attempts to set higher timeout.

Thanks & Regards

> [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

To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org

View raw message