qpid-dev mailing list archives

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

    [ 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

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

View raw message