summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/cluster/Connection.cpp
Commit message (Collapse)AuthorAgeFilesLines
* QPID-3858: Updated code to include recent refactoring by Gordon (gsim) - see ↵Kim van der Riet2012-08-271-878/+0
| | | | | | QPID-4178. git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/asyncstore@1377715 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3858: Updated branch - merged from trunk r.1368650Kim van der Riet2012-08-031-9/+20
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/asyncstore@1368910 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3858: Updated branch - merged from trunk r.1333987Kim van der Riet2012-05-041-0/+49
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/asyncstore@1334037 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3603: Merge new HA foundations.Alan Conway2012-02-171-2/+9
| | | | | | | 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/qpid@1245587 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3603: Replace public broker::Consumer::position variable with get/set ↵Alan Conway2012-01-181-1/+1
| | | | | | | | function pair. Public member variables are not good sytle. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1233080 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3630: remove deprecated rate limiting featureKenneth Anthony Giusti2012-01-131-2/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1231221 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3438Michael Goulish2012-01-051-2/+0
| | | | | | | | | | Remove unnecessary changes to broker. The cluster code does not really need to know that the cnx error was due to auth failure. Any failure before the cnx has opened should cause the cnx to be removed from the 'local' map, or a cnx leak will occur. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1227616 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3438Michael Goulish2011-12-161-1/+6
| | | | | | | fix cluster causing cnx leak when bad credentials are given in login attempt. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1215127 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3629: Changed management of credit windowGordon Sim2011-11-231-1/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1205467 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3346: move message group feature into trunk.Kenneth Anthony Giusti2011-10-071-7/+7
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1180050 13f79535-47bb-0310-9956-ffa450edef68
* Bug 730017, QPID-3475: Cluster authentication ignores cluster-* settings.Alan Conway2011-09-071-1/+3
| | | | | | | | | When a broker joins a cluster, it should be authenticated authenticate using the options --cluster-username, --cluster-password and --cluster-mechanism. The broker was ignoring the settings and joining the cluster even if an invalid user or password are supplied. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1166279 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Suppress logging of clock events in cluster code.Alan Conway2011-08-311-1/+1
| | | | | | | Clock events are much too frequent to log, doing so makes trace logging useless for clustered brokers. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1163766 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3384: DTX transactions - replicate suspended transactions.Alan Conway2011-08-301-11/+18
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1163347 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3384: Enable DTX transactions in a cluster.Alan Conway2011-08-251-38/+102
| | | | | | | | - 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/qpid@1161742 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3280: Performance problem with TTL messages.Alan Conway2011-06-151-4/+11
| | | | | | | | | | | | When sending a large number of messages with nonzero TTLs to a cluster, overall message throughput drops by around 20-30% compared to messages with TTL 0. The previous approach to TTL in the cluster is replaced with a simpler "cluster clock". Also QueueCleaner is executed in the cluster timer, and modified to be deterministic in a cluster. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1136170 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3288: "[C++] Broker sets federation link tag as empty string () when no ↵Kim van der Riet2011-06-061-2/+2
| | | | | | tag is present in the client/server properties" git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1132623 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3076: enable flow control for clustered broker configurations.Kenneth Anthony Giusti2011-04-281-0/+43
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1097432 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3202: Clustered brokers shut down with "unknown connection" error.Alan Conway2011-04-131-5/+7
| | | | | | | | | | | This error is an assertion recently introduced in r1091097, the bug has probably been there for a while. Two fixes: - Connections that close before they are announced no longer send a deliver-close. - Fixed race in OutputInterceptor that sent a deliver-do-output after deliver-close. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1091790 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: remove some dead code, rename internal method for clarityGordon Sim2011-02-281-6/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1075381 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3084: apply Alan's fix to allow io callbacks to run during a cluster ↵Kenneth Anthony Giusti2011-02-241-12/+18
| | | | | | update. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1074332 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3002: Configurable threshold alerts for queuesGordon Sim2011-02-151-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1070913 13f79535-47bb-0310-9956-ffa450edef68
* QPID-529: Priority queue implementationGordon Sim2011-02-101-0/+8
| | | | | | | | | | QPID-2104: LVQ enhancement These both required some refactoring of the Queue class to allow cleaner implementation of different types of behaviour. The in-memory storage of messages is now abstracted out behind an interface specified by qpid::broker::Messages which qpid::broker::Queue uses. Different implementations of that are available for the standard FIFO queue, priority queues and LVQ (I have also separated out the 'legacy' implementation of LVQ from the new version driven by QPID-2104). git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1069322 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2982 Bug 669452 - Creating a route and using management tools can crash ↵Alan Conway2011-01-181-3/+24
| | | | | | | | | | | | cluster members. Cluster update did not include federation link and bridge objects. Fixed update to include them. Management linkUp and linkDown events were generated only on the broker receiving the link. Suppressed these events in a cluster. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1060568 13f79535-47bb-0310-9956-ffa450edef68
* Bug 662765 - Management broker ID should be the same for members of a cluster.Alan Conway2010-12-151-3/+11
| | | | | | | Replicate management UUID and name to members of a cluster. See https://bugzilla.redhat.com/show_bug.cgi?id=662765. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1049566 13f79535-47bb-0310-9956-ffa450edef68
* Defer update of managaement agent to end of update process.Alan Conway2010-12-081-2/+2
| | | | | | | | | | | Move updating of the management agent to the very end of the update process, after all objects used by the update process itself have been deleted. Before the fix deletions from the update process itself (deleting the qpid.cluster-update queue and its binding to the default exchange) were sporadically appearing as extra delete messages on the updatees management agent and causing inconsistency. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1043621 13f79535-47bb-0310-9956-ffa450edef68
* Modified cluster_tests causes broker shut down with invalid-argument error.Alan Conway2010-12-011-20/+4
| | | | | | | | | | Described in https://bugzilla.redhat.com/show_bug.cgi?id=655078. The management agent's deleted-object list was not being replicated to new members joining the cluster, so management generated fewer deleted object notifications on the newer member, causing it to fail with an invalid-argument error. The list is now being replicated correctly. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1041181 13f79535-47bb-0310-9956-ffa450edef68
* Check for and abort invalid catchup connections.Alan Conway2010-08-231-1/+5
| | | | | | | Detect attempt to make a catch-up connection while we are not expecting an update. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@988312 13f79535-47bb-0310-9956-ffa450edef68
* Fix bug in cluster with authentication: nodes exit with "unauthorized-access"Alan Conway2010-07-201-0/+11
| | | | | | | | | | Adding a node to a cluster on which authentication is enabled and on which there are existing connections authenticated with mechanisms other than anonymous, may result in nodes exiting the cluster with inconsistent authorisation errors. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@965979 13f79535-47bb-0310-9956-ffa450edef68
* Fix cluster-safe assertion in ~Connection.Alan Conway2010-07-081-0/+6
| | | | | | | | Don't trigger cluster-safe asserts in broker::~Connection as it can be called from an IO threads during broker shutdown. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@961814 13f79535-47bb-0310-9956-ffa450edef68
* Fix sporadic cluster core on exit.Alan Conway2010-07-011-1/+0
| | | | | | | | Fix a race condition that allows a cluster::Connection to be deleted via the Cluster's local map before it was fully initialized. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@959752 13f79535-47bb-0310-9956-ffa450edef68
* Fix regression in r956882, sporadic failures of ↵Alan Conway2010-06-241-14/+9
| | | | | | client_test.cpp:testBadClientData git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@957640 13f79535-47bb-0310-9956-ffa450edef68
* Fix cluster broker crashes when management is active.Alan Conway2010-06-221-20/+25
| | | | | | | | | | | | Cluser brokers were exiting with errors "modified cluster state outside cluster context" and "confirmed < (50+0) but only sent < (49+0)" Fix was to: - delay completion of incoming update till update connection closes. - delay addding new connections to managment until connection is announced. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@956882 13f79535-47bb-0310-9956-ffa450edef68
* Bug 603835 - cluster_tests.test_management failing.Alan Conway2010-06-161-19/+28
| | | | | | | | | | | Clean up connections causing extra connection objects in the mangement agent map. - update connection was not being closed. - connections belonging to members that left the cluster were not fully cleaned up Also fixed test errors making failover_soak fail sporadically. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@955370 13f79535-47bb-0310-9956-ffa450edef68
* Fix cluster-safe assertion in connection negotiation.Alan Conway2010-06-091-0/+2
| | | | | | | | See https://bugzilla.redhat.com/show_bug.cgi?id=602347. In a cluster, raise the management connect event when processing cluster.announce. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@953147 13f79535-47bb-0310-9956-ffa450edef68
* Cluster handle connection-negotiation phase in local broker.Alan Conway2010-06-081-117/+89
| | | | | | | | | | | | | | | | | The connection negotiation phase up to the "open" or "open-ok" frame establishes whether/what encryption to use for the rest of the connection. With this patch a cluster broker completes the initial negotiation with its local clients and only then begins multicasting to other brokers. The local broker decrypts if necessary and multicasts in the clear. This replaces a problematic locking scheme that was formerly in place which caused deadlocks. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@952692 13f79535-47bb-0310-9956-ffa450edef68
* Fixed sporadic failure of cluster_tests.py sasl_testAlan Conway2010-06-041-1/+2
| | | | | | | - added missing initializer for cluster::Connection::inConnectionNegotiation - brokertest.py: fixed formatting of log excerpt in exceptions. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@951452 13f79535-47bb-0310-9956-ffa450edef68
* Fixed assertion error in cluster_tests.py test_failover.Alan Conway2010-05-311-1/+1
| | | | | | | Added missing call to expandd in cluster/RetractClient.cpp git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@949767 13f79535-47bb-0310-9956-ffa450edef68
* Fixed: authentication with bad credentials causes cluster broker to exit.Alan Conway2010-05-271-2/+12
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@948969 13f79535-47bb-0310-9956-ffa450edef68
* Fix issues with cluster+securityAlan Conway2010-05-271-15/+15
| | | | | | | | - was using "none" not empty string for no ID. - was multicasting secure id for update and shadow connections. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@948967 13f79535-47bb-0310-9956-ffa450edef68
* Fix for "Assertion `!mcastSentButNotReceived' failed." in cluster tests.Alan Conway2010-05-171-15/+22
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@945383 13f79535-47bb-0310-9956-ffa450edef68
* Cluster + SecurityMichael Goulish2010-05-141-5/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ----------------------------------- * initial observation of a problem was a 2% failure rate in perftests of 20,000 messages against a cluster with security enabled. Problem was occasional receit of encrypted frames before the security codec had been enabled. This is fixed with locking in cluster code (no new locks in broker code) and a callback that is fired by broker::ConnectionHandler::Handler to tell the cluster code when the opening handshake has finished. This was never a problem in the non-clustered broker before because everything happened in a single thread. * the brokers that "shadow" the connection must not have null authenticators rather than real ones, so that they go through all the motions but don't do anythig. Only the directly-connected broker can perform the security handshake. * once the directly-connected broker receives the real user ID from its callback, it mcasts that ID to all other brokers. Otherwise the shadowing brokers will al think that the user ID is "anonymous". Check this by doing a substantial perftest, and using qpid-stat -c localhost:PORT to confirm that the brokers all have the same userID for the same connection. * the user ID, negotiated during the Sasl security startup, is communicated from the directly connected broker to all other cluster brokers. * If security is *not* being used, then this code should *not* tell the brokers anything about the userID -- or it will step on the value that is being set by other code pathways. * test program at cpp/src/tests/cluster_authentication_soak is not yet fully automated -- run it with something like "sudo ./cluster_authentication_soak 500" git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@944158 13f79535-47bb-0310-9956-ffa450edef68
* Cluster: remove un-necessary code for config-seq.Alan Conway2010-03-311-3/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@929616 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2436: Fix cluster update of remote agents.Alan Conway2010-03-081-3/+3
| | | | | | | | | The v2key of cluster agents was not being passed as part of a cluster update. This meant they were not being associated with the correct shadow connections on the updatee. This caused inconsistencies that shut down the new broker. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@920414 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2412: Support for EXTERNAL mechanism on client-authenticated SSL ↵Gordon Sim2010-03-051-8/+13
| | | | | | | | | | | | connections. On SSL connection where the clients certificate is authenticated (requires the --ssl-require-client-authentication option at present), the clients identity will be taken from that certificate (it will be the CN with any DCs present appended as the domain, e.g. CN=bob,DC=acme,DC=com would result in an identity of bob@acme.com). This will enable the EXTERNAL mechanism when cyrus sasl is in use. The client can still negotiate their desired mechanism. There is a new option on the ssl module (--ssl-sasl-no-dict) that allows the options on ssl connections to be restricted to those that are not vulnerable to dictionary attacks (EXTERNAL being the primary example). git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@919487 13f79535-47bb-0310-9956-ffa450edef68
* Fix: decoding error causes cluster broker to exit.Alan Conway2010-03-011-4/+16
| | | | | | | | | | An error decoding a connection was causing the broker::Connection object to be deleted in the connection IO thread rather than the cluster deliver thread, causing an exit with "critical Modified cluster state outside of cluster context" git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@917734 13f79535-47bb-0310-9956-ffa450edef68
* Consistent connection names across a cluster.Alan Conway2010-02-051-19/+33
| | | | | | | | | - use the same host:port for connections and their shadows. - add shadow property to managment connection to identify shadows. - updated qpid-stat and qpid-cluster to filter on shadow property. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@907123 13f79535-47bb-0310-9956-ffa450edef68
* Synchronize management agent lists during cluster update.Alan Conway2010-02-051-1/+9
| | | | | | | | | - replicate management agent lists during cluster update. - suppress management agent output during update. - on join all members force full output at next periodic processing. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@907030 13f79535-47bb-0310-9956-ffa450edef68
* Cluster: debug snapshots of queue depth at broker join, help find ↵Alan Conway2010-02-021-0/+5
| | | | | | inconsistencies. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@905674 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2357 Broker boot sequence doesn't synchronize when clustered - patch ↵Alan Conway2010-01-281-0/+14
| | | | | | from John Dunning git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@904270 13f79535-47bb-0310-9956-ffa450edef68
* Fix for QPID-2373 - Durable exchange state not replicated to broker joining ↵Kim van der Riet2010-01-281-0/+3
| | | | | | cluster git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@904154 13f79535-47bb-0310-9956-ffa450edef68