summaryrefslogtreecommitdiff
path: root/qpid/cpp/src/tests/ha_test.py
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2015-09-03 18:59:05 +0000
committerAlan Conway <aconway@apache.org>2015-09-03 18:59:05 +0000
commit14de0a97b80cc0f63208b61654dd0348fd3da8b1 (patch)
treea9f3a2bcdda814d6a36ab1981ae528272d460523 /qpid/cpp/src/tests/ha_test.py
parent492f7a78b8fd2ed7dd4e08184f42b7496aa8fed1 (diff)
downloadqpid-python-14de0a97b80cc0f63208b61654dd0348fd3da8b1.tar.gz
QPID-5855 - Simplified HA transaction logic.
Removed complex and incorrect HA+TX logic, reverted to the following limitation: You can use transactions in a HA cluster, but there are limitations on the transactional guarantees. Transactions function normally with the *primary* broker but replication to the backups is not coverted by the atomic guarantee. The following situations are all safe: - Client rolls back a transaction. - Client successfully commits a transaction. - Primary fails during a transaction *before* the client sends a commit. - Transaction contains only one message. The problem case is when all of the following occur: - transaction contains multiple actions (enqueues or dequeues) - primary fails between client sending commit and receiving commit-complete. In this case it is possible that only part of the transaction was replicated to the backups, so on fail-over partial transaction results may be visible. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1701109 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src/tests/ha_test.py')
-rwxr-xr-xqpid/cpp/src/tests/ha_test.py2
1 files changed, 2 insertions, 0 deletions
diff --git a/qpid/cpp/src/tests/ha_test.py b/qpid/cpp/src/tests/ha_test.py
index 82ca808cb1..ace225a509 100755
--- a/qpid/cpp/src/tests/ha_test.py
+++ b/qpid/cpp/src/tests/ha_test.py
@@ -267,6 +267,8 @@ acl allow all all
c = self.connect_admin()
try:
wait_address(c, queue)
+ if not "msg" in kwargs:
+ kwargs["msg"]=str(self)
assert_browse_retry(c.session(), queue, expected, **kwargs)
finally: c.close()