summaryrefslogtreecommitdiff
path: root/qpid/cpp/src/tests/brokertest.py
Commit message (Collapse)AuthorAgeFilesLines
* QPID-5115: AMQP 1.0 client support built in to qpidmessaging for all platformsCharles E. Rolke2013-10-041-1/+0
| | | | | | | | | | | This commit disposes of the amqpc library and moves the functions into the qpidmessaging library. Now any client that loads qpidmessaging gets amqp0-10 and amqp1.0 selectable through the connection protocol option. C++ brokers still must load the amqp library to enable 1.0 support. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1529235 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4944: HA fix failure of test_failover_send_receive on slow machines.Alan Conway2013-09-131-1/+1
| | | | | | | | | | At the end of this test, receivers read remaining messages on queues. Previously the test limited the max depth at 1024, but this was too high on some slower machines and caused a timeout. The test now limits the max depth to 50, which seems to work on a range of machines. There's no impact on the effectiveness of the test for failover. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1523094 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4944: HA re-enable test_failover_send_receiveAlan Conway2013-09-121-2/+2
| | | | | | | | | | | | | Appears to have been fixed at this point on trunk, not clear which checkins are responsible. Test ran for 48 hours with no failures. Other minor changes: - Enable test_failover_send_receive - Increase heartbeat interval. - Reduce capacity of senders in failover test to be more aggressive. - Use HaBrokerTest as test base git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1522711 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: HA minor fixes to test framework & comments.Alan Conway2013-09-041-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1520108 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4327: HA clean up transaction artifacts at end of TX.Alan Conway2013-08-301-0/+4
| | | | | | | | | | - Backups delete transactions on failover. - TxReplicator cancel subscriptions when transaction is finished. - TxReplicator rollback if destroyed prematurely. - Handle special case of no backups for a tx. - ha_tests.py: new and modified tests to cover the new functionality. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1518982 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4327: HA TX transactions: basic replication.Alan Conway2013-08-011-6/+9
| | | | | | | | | | | | | | | On primary a PrimaryTxObserver observes a transaction's TxBuffer and generates transaction events on a tx-replication-queue. On the backup a TxReplicator receives the events and constructs a TxBuffer equivalent to the one in the primary. Unfinished: - Primary does not wait for backups to prepare() before committing. - All connected backups are assumed to be in the transaction, there are race conditions around brokers joining/leavinv where this assumption is invalid. - Need more tests. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1509423 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4327: Added TransactionObserver interface.Alan Conway2013-08-011-2/+2
| | | | | | | | | | | Added TransactionObserver interface, called at each point in a transaction's lifecycle. Currently only a single observer can be associated with a transaction. Added startTx, startDtx to BrokerObserver so plugins can observe transactions starting and set a TransactionObserver. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1509421 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4327: Optimize brokertest.ready() to improve test runtimes.Alan Conway2013-08-011-22/+13
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1509418 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4944: HA Sporadic failure: test_failover_send_receiveAlan Conway2013-07-041-1/+2
| | | | | | | | | | | | | | | | | Test failing if run as: ha_tests.py -DDURATION=2 AssertionError: Stalled test0 waiting for 248, sent 1228 The problem was a missing call to notify() when a ReplicatingSubscription skipped a message. That resulted in very long (>1s) delays between skipped messages which caused the test to time out. Changes: - ReplicatingSubscription::deliver call notify() to keep consumer active. - Re-enable test_failover_send_receive. - Increase default credit for replicating subscription to match qpid-send. - Rename ReplicatingSubscription::unacked as unready, clearer meaning. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1499789 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4944: HA Sporadic failure - logging improvements used to investigate.Alan Conway2013-07-041-0/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1499788 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4931: Only allow broker to listen to a single address if "--port 0" ↵Andrew Stitcher2013-06-191-1/+1
| | | | | | | | | | | specified - If more than one address is specified or implied by the defaults the broker will log a warning - This is intended to avoid testing problems where the broker fails to connect to the port of subsequent listening addresses git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1494656 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Added connection timeout to python client, used in brokertests.Alan Conway2013-05-291-2/+2
| | | | | | | Added an optional timeout parameter to Connection.establish. Set a timeout of 5 seconds in brokertest.py to prevent hanging tests. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1487578 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4745: HA safe port allocation for brokers in HA tests.Alan Conway2013-05-151-8/+3
| | | | | | | | | | | | | | | | | | Many HA tests use --port=0 to start a broker on an available port, but then need to shutdown and restart the broker on the same port. This is not safe, on a busy system it is possible for another process to take the port between the time the broker is shut down and the time it is restarted. The solution is to do bind(0) and listen in the python test framework (class HaPort) and let the broker use the socket using qpidd --socket-fd. When the broker is shut down the port remains bound by the python process. When the broker is re-started it again is given access to the socket via --socket-fd. Other changes - move ha_store_tests into ha_tests. - add heartbeats to avoid stalling. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1482881 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4640: brokertest.py prints a message and skips tests if qmf.console not ↵Alan Conway2013-03-151-1/+4
| | | | | | | | | | available. Tests that use qmf.console will print a skip message if it is not available. For example: they may not be available when building from a distro rather than a checkout. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1457097 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4586: add ability to have qpidd establish outgoing connectionsGordon Sim2013-03-141-0/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1456621 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4514: Remove obsolete cluster code: brokertest.pyAlan Conway2013-01-031-85/+7
| | | | | | Clean up cluster obsolete code in brokertest.py. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1428634 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Fix race condition in brokertest.py test harness.Alan Conway2012-12-071-1/+3
| | | | | | | Fixed a race conndition that was causing false failures of the form "expected an error". git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1418417 13f79535-47bb-0310-9956-ffa450edef68
* Bug 860701 - QPID-4350: HA handle auto-delete queuesAlan Conway2012-10-111-2/+2
| | | | | | | Subscribed auto-delete queues are deleted by the backup. Timed auto-delete queues are deleted after the timeout. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1397243 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4325: HA Starting from persistent storeAlan Conway2012-09-251-2/+2
| | | | | | | | | | | When re-starting a persistent HA cluster, the broker that becomes primary should keep its store data while all the backup brokers should discard their store data and catch up from the primary. Backups cannot simply use their own stores because sequence numbers of stored messages will not match on all brokers. The backup erases individual queues and exchanges as the catch-up process gets to them. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1390123 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4223: HA Completion isn't sent when queue that has acquired but ↵Alan Conway2012-09-141-2/+2
| | | | | | | | | | | unacknowledged messages is deleted - Extended ha_test.py test_failover_send_receive to kill backup as well as primary - QueueRegistry::destroy was not calling observer. - Primary removes disconnected brokers backups and expectedBackups - Primary calls checkReady in all cases where broker is removed from expectedBackups git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1384882 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4072: HA use backup messages in failover.Alan Conway2012-06-181-2/+3
| | | | | | | ReplicatingSubscription syncs the primary and backup queues, and does not re-send messages that are already on the backup. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1351481 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3603: Fix & clean up in HA code.Alan Conway2012-06-181-7/+7
| | | | | | | | | | - Fix fencepost error in getFirstSafe() - QueueGuard::attach completes messages before the ReplicatingSubscription postion - Fix minor test issues in brokertest.py and ha_test.py. - ReplicatingSubscription check for ready in acknowledge not dispatch. - HA test fix: retry wait_status retry on ConnectErrors, broker may not be up. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1351435 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3603: Minor cleanup and test improvements in HA code.Alan Conway2012-06-181-2/+2
| | | | | | | | | | - Enabled 10 queue failover test - Minor cleanup in types.h - Rewording, adding comments. - Detect and reject invalid replication values. - Cleaned up some unnecessary #includes git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1351434 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3603: HA bug fixes around transition to ready statusAlan Conway2012-06-121-1/+1
| | | | | | | | | | - Simplify QueueGuard::firstSafe calculation. - Fix error in setting initial queues - was not checking if replicated. - Send ready status to backups. Tests hang, deadlock in opened()->RemoteBackup on primary? - Fix deadlock in QueueGuard. - Don't start guards inside ConnectionObserver::opened. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1349547 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3603: HA bug fixes around ha::QueueGuardAlan Conway2012-06-121-1/+1
| | | | | | | | | | - Remove nested calls between QueueGuard::dequeued and ReplicatingSubscription - ReplicatingSubscription can't start ahead of QueueGuard::getReadyPosition() - Fix QueueGuard firstSafe calcultatoin - Replace DequeueRemover with DequeueScanner in ReplicatingSubscription - Removed bad assertions in ReplicatingSubscription and QueueGuard git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1349544 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3603: Introduced RemoteBackup to track backup status.Alan Conway2012-06-121-5/+3
| | | | | | | | | | | The primary creates RemoteBackup object for each connected or expected backup. On first being promoted, the new primary has a RemoteBackup for each of the known backups at the time of the failure. The RemoteBackup manages queue guards for its backup and tracks it's readiness. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1349540 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3603: Separate QueueGuard from ReplicatingSubscription.Alan Conway2012-06-121-1/+1
| | | | | | | | | | | | | QueueGuard: implements QueueObserver to delay completion of new messages. ReplicatingSubscription: Implements subscription, sends messages & events to backup. These were previously combined as one. QueueGuard is now separated out so that it can be created before the ReplicatingSubscription, in anticipation of an expected backup connecting. This is needed for 2 reasons: - new queues must be guarded until they are backuped up. - after a failover, all queues must be guarded until backups are ready. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1349538 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3603: Close replication link when a backup broker is promoted to primary.Alan Conway2012-05-281-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1343348 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3603: HA broker backup/primary ready checks.Alan Conway2012-05-151-8/+10
| | | | | | | | | | | | | | | | | - Introduce HA broker state machien - Inform backup queues when ready. - Incomplete implementation of backup ready check. - does not count correctly after a failover, see countUnready. - Existing replicator bridges updated out of sync with BrokerReplicator initialize. - Does not handle multi-messages responses. - Newly promoted HA primary waits for backups to be ready before accepting clients. - Uniform log prefixes for HA messages. - qpid-ha tests, call qpid-ha python code directly. - Move excluder from Backup to HaBroker, it is also used in PROMOTING. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1338889 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Fix assertion messages in brokertest.pyAlan Conway2012-04-181-2/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1327518 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Minor code clean-up in brokertest.py and ha_tests.py.Alan Conway2012-04-171-27/+32
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1327137 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3603: Keep acquired messages on queues for all queue types.Alan Conway2012-03-301-4/+7
| | | | | | | | Updated priority and lvq queues to keep acquired messages, and supply them to browsers if requested. This is necessary so replicating subscriptions can back-up these queue types without message loss. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1307582 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3603: Merge new HA foundations.Alan Conway2012-02-171-32/+45
| | | | | | | Merged from qpid-3603-7. This is basic support for the new HA approach. For information & limitations see qpid/cpp/design_docs/new-ha-design.txt. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1245587 13f79535-47bb-0310-9956-ffa450edef68
* Adjust topictest.ps1 to use correct executable names (they changed some time ↵Stephen D. Huston2011-12-221-1/+1
| | | | | | ago); extend broker start timeout on brokertest.ps1 (Windows broker now takes 19 sec to start?!). NO-JIRA git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1222330 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3652: Fix cluster authentication.Alan Conway2011-12-061-2/+6
| | | | | | | | | | | | | | | | | | | Only allow brokers that authenticate as the cluster-username to join a cluster. New broker first connects to a cluster broker authenticates as the cluster-username and sends its CPG member ID to the qpid.cluster-credentials exchange. The cluster broker that subsequently acts as updater verifies that the credentials are valid before connecting to give the update. NOTE 1: If you are using an ACL, the cluster-username must be allowed to publish to the qpid.cluster-credentials exchange. E.g. in your ACL file: acl allow foo@QPID publish exchange name=qpid.cluster-credentials NOTE 2: This changes the cluster initialization protocol, you will need to restart the cluster with all new version brokers. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1210989 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Fix minor FIXME in brokertest.pyAlan Conway2011-09-011-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1164249 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3384: DTX transactions - replicate suspended transactions.Alan Conway2011-08-301-0/+4
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1163347 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3384: Enable DTX transactions in a cluster.Alan Conway2011-08-251-3/+1
| | | | | | | | - Replicate DTX state to new members joining. - Use cluster timer for DTX timeouts. - Incidental: quote nulls in qpid::Msg messages (XIDs often have null characters) git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1161742 13f79535-47bb-0310-9956-ffa450edef68
* QPID-702656 Patch from Gordon Sim plus tests which detect the condition ↵Kim van der Riet2011-07-191-11/+12
| | | | | | being solved. Added a make check-long target to the Makefile in the cpp dir to make it easier to run the long tests. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1148503 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3329: Configure C++ client connections to replace url-addresses rather ↵Alan Conway2011-06-301-4/+8
| | | | | | than merging new addresses with old git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1141493 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Add reconnect-timeout to test clients to prevent client hangs.Alan Conway2011-06-271-2/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1140179 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3129: cluster_tests.LongTests.test_failover hangsAlan Conway2011-06-201-3/+3
| | | | | | | | | Problem: the first broker in the cluster could be killed before the receiver was connected, so the receiver could not fail-over, it didn't have a failover update. Fix: wait for the first message to be received by the receiver before starting the broker-kill loop. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1137657 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Fix sporadic failures in cluster_tests.py test_management.Alan Conway2011-06-151-1/+1
| | | | | | | | Fix timing problems with broker shut down in this test. Kill all brokers in the test, rather than leaving the last 2 running to be cleaned up by the harness. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1136166 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Increase join timeout in brokertest.py, was causing spurious failures.Alan Conway2011-06-141-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1135786 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Removed reconnect-timeout from tests, was causing spurious failures.Alan Conway2011-06-141-2/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1135768 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Fix bugs in test_failover test and the brokertest.py framework.Alan Conway2011-06-141-2/+11
| | | | | | | - brokertest.py was not reliably detecting failed processes. - test_failover was not setting the reconnect option on its connections. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1135722 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3208: Exchanges make best effort to route messages if there is an error.Alan Conway2011-04-181-7/+13
| | | | | | | | | | | | | | | Previously if multiple queues were bound to the same routing key, then a failure to deliver to one of the queues (e.g. policy limit error) could prevent delivery on some of the other queues. With this commit the exchange delivers to every queue that did not have an error before raising an error. Note: this was originally committed as r1092765, but it caused test failures was reverted as r1092804. The original commit did not create exceptions of the correct type. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1094734 13f79535-47bb-0310-9956-ffa450edef68
* Revert "QPID-3208: Exchanges make best effort to route messages if there is ↵Alan Conway2011-04-151-13/+7
| | | | | | | | an error." This reverts commit r1092765 which introduced test failures in make check. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1092804 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3208: Exchanges make best effort to route messages if there is an error.Alan Conway2011-04-151-7/+13
| | | | | | | | | | | Previously if multiple queues were bound to the same routing key, then a failure to deliver to one of the queues (e.g. policy limit error) could prevent delivery on some of the other queues. With this commit the exchange delivers to every queue that did not have an error before raising an error. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1092765 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3129: cluster_tests.LongTests.test_failover hangsAlan Conway2011-03-301-1/+1
| | | | | | | | | | | | | | | | | Fix is a race condition in posix/Socket.cpp Socket::connect. When connecting to a port on the same host which no longer has a process associated with it the OS occasionally chooses the remote port (which is unoccupied) as the port to bind the local end of the socket, resulting in a "circular" connection. This seems like something the OS should prevent but I have confirmed that the sporadic hangs in cluster_tests.LongTests.test_failover on RHEL5 are caused by such a circular connection. The fix is to detect circular connections and raise an error. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1087052 13f79535-47bb-0310-9956-ffa450edef68