qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alan Conway (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (QPID-5888) transaction should always be aborted on failover
Date Fri, 18 Jul 2014 20:12:13 GMT

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

Alan Conway commented on QPID-5888:

r1611748 | aconway | 2014-07-18 14:18:42 -0400 (Fri, 18 Jul 2014) | 27 lines

QPID-5888: transaction should always be aborted on failover

C++ and python clients were attempting to continue the transation transparently
after failover which is in correct. They were re-sending messages in the
transaction but there is no way to re-do transactional receives. The transaction
must be aborted.

The C++ and python clients have been modified to kill a transactional session
with a TransactionAborted exception if there is a failover.

Note the Java client already behaves correctly but not identically.
It defers raising an exception until commit rather than failing
immediately on failover, and the session can still be used.

The following commits are involved:

r1611349 QPID-5887: revised approach to implict abort
r1610959 QPID-5887: allow qpid-txtest2 to be run by make test
r1610958 QPID-5887: fix to new txtest2, acknowledge messages in the check phase to ensure
queues remain drained for any subsequent runs
r1609748 QPID-5887: abort transactional session on failover; added equivalent of txtest using
messaging API

This commit does the following:

- Update ha_tests.py tx_simpler_failover test to expect transaction aborted.
- Minor improvements to qpid-txtest2
- Fix native (non-swig) python client.


> transaction should always be aborted on failover
> ------------------------------------------------
>                 Key: QPID-5888
>                 URL: https://issues.apache.org/jira/browse/QPID-5888
>             Project: Qpid
>          Issue Type: Bug
>          Components: Python Client
>    Affects Versions: 0.29
>            Reporter: Gordon Sim
>            Assignee: Alan Conway
>             Fix For: 0.29
>         Attachments: qpid-txtest2.cpp.diff
> At present, failover is entirely hidden from the client which is the wrong thing to do
for a transactional session.
> The client should always abort the transaction on a failed session, and not try to failover
transparently. This is what would happen if the commit failed due to some internal error on
the broker (e.g. no space on disk or whatever). 

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