[
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
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]