summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker
Commit message (Collapse)AuthorAgeFilesLines
* Fix unreferenced local variable warningStephen D. Huston2010-07-151-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@964623 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2727: Handle exceptions in Broker constructor and call finalise to ↵Gordon Sim2010-07-091-0/+5
| | | | | | safely cleanup plugins git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@962586 13f79535-47bb-0310-9956-ffa450edef68
* Ensure broker is deleted in main thread, not by global destructors.Alan Conway2010-07-072-13/+17
| | | | | | | This fixes a race condition that was not handled by r959746. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@961404 13f79535-47bb-0310-9956-ffa450edef68
* Defer delivery of messages in cluster-unsafe context.Alan Conway2010-07-053-1/+22
| | | | | | | | | | | | | | | Messages enqueued in a cluster-safe context are synchronized across the cluster. However some messages are delivered in a cluster-unsafe context, for example raising a link established event occurs the connection thread of the establishing connection. This fix deferrs such messages by multicasting them so they can be re-delived in a cluster safe context. See https://bugzilla.redhat.com/show_bug.cgi?id=611543 git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@960681 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2691: ensure ttl adjustment uses correct expiration on cloned messageGordon Sim2010-06-243-4/+7
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@957511 13f79535-47bb-0310-9956-ffa450edef68
* Make management+cluster test more aggressive.Alan Conway2010-06-231-1/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@957337 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2688: ensure that unacked messages are requeued before autodeletion ↵Gordon Sim2010-06-223-9/+37
| | | | | | occurs when session closes git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@956988 13f79535-47bb-0310-9956-ffa450edef68
* Don't hold QueueRegistry lock while iterating over queues to purge them of ↵Gordon Sim2010-06-221-1/+17
| | | | | | expired messages. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@956923 13f79535-47bb-0310-9956-ffa450edef68
* Fix cluster broker crashes when management is active.Alan Conway2010-06-222-12/+32
| | | | | | | | | | | | 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
* QPID-2670: copy-on-write when tagging message for loop detectionGordon Sim2010-06-154-4/+18
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@954933 13f79535-47bb-0310-9956-ffa450edef68
* Fix cluster-safe assertion in connection negotiation.Alan Conway2010-06-092-1/+12
| | | | | | | | 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
* Ensure that bindings for dynamic bridges are not propagated over failed ↵Gordon Sim2010-06-092-9/+19
| | | | | | sessions. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@952942 13f79535-47bb-0310-9956-ffa450edef68
* Cluster handle connection-negotiation phase in local broker.Alan Conway2010-06-085-37/+9
| | | | | | | | | | | | | | | | | 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
* QPID-2649: Ensure timer is stopped before we start deleting broker membersGordon Sim2010-06-071-0/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@952307 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2004: Now that connections are cleaned up on shutdown, some cluster ↵Gordon Sim2010-06-022-3/+0
| | | | | | safety assertions need to be relaxed. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@950735 13f79535-47bb-0310-9956-ffa450edef68
* Fixed sporadic client "reserved bits not 0" exceptions with cluster + ↵Alan Conway2010-06-021-1/+1
| | | | | | encryption. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@950608 13f79535-47bb-0310-9956-ffa450edef68
* Fix problems with cluster_authentication_soak test in VPATH build.Alan Conway2010-05-271-11/+9
| | | | | | | | | - Fix SASL version testing logic in cluster_authentication_soak and SaslAuthenticator - Generate all SASL config in the build directory in sasl_test_setup.sh - Compile cluster_authentication_soak only if SASL is available. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@948968 13f79535-47bb-0310-9956-ffa450edef68
* Fix issues with cluster+securityAlan Conway2010-05-272-15/+9
| | | | | | | | - 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
* QPID-2617: Fix the windows build for modified method signatureGordon Sim2010-05-251-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@948072 13f79535-47bb-0310-9956-ffa450edef68
* Disable new sasl testing if SASL version is less than 2.1.22.Michael Goulish2010-05-241-0/+3
| | | | | | | Earlier version do not have SASL_PATH_TYPE_CONFIG, which this testing requires. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@947850 13f79535-47bb-0310-9956-ffa450edef68
* The cmake build caught my omission of this unused arg.Michael Goulish2010-05-241-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@947764 13f79535-47bb-0310-9956-ffa450edef68
* Jira QPID-2617 -- make sasl-based tests config files relocatableMichael Goulish2010-05-244-13/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this change, sasl-based testing cannot be fully automated because the sasl db must be located in the standard installation location of /etc/sasl2. * Created a new directory "sasl_config" under cpp/src/tests * added a new makefile fragment "sasl.mk" to cpp/src/Makefile.am conditionally included basedon HAVE_SASL, which is defined by configure. ( NOTE: should be in cpp/src/tests/Makefile.am, but getting an "saslpasswd2: generic failure" when I try that. ) * The sasl.mk fragment uses saslpasswd2 to create a sasl db in cpp/src/tests/sasl_config that defines two users with eponymous passwords. * In test cluster_authentication_soak.cpp, make the cluster name random. * make SaslAuthenticator code accept and use a config path * give cluster_authentication_soak self-test capability. the test is meant to detect two problems: - broker failure - perftest hang so give it flags that will force either of those conditions. This allows me to (anually) ensure that the test really does detect those conditions when they occur. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@947748 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2612: Fix to windows build from Chuck RolkeGordon Sim2010-05-181-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@945778 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2588: Prevent queue being destroyed while still in use.Gordon Sim2010-05-154-12/+67
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@944683 13f79535-47bb-0310-9956-ffa450edef68
* Cluster + SecurityMichael Goulish2010-05-146-19/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ----------------------------------- * 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
* QPID-2588: Ensure we do not make calls on store for a given queue once it ↵Gordon Sim2010-05-134-2/+13
| | | | | | has been destroyed git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@944016 13f79535-47bb-0310-9956-ffa450edef68
* Support for multiple protocols in qpid::Url.Alan Conway2010-05-118-47/+45
| | | | | | | | | | - simplified qpid::Address to hold (protocol,host,port) triples. - protocol plugins call Url:addProtocol to add tags to Url parser. - use Address::protocol when establishing connections. - ssl_test: tests using URL to connect. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@943130 13f79535-47bb-0310-9956-ffa450edef68
* Use UnauthorizedAccessException for ACL violations rather than ↵Gordon Sim2010-05-063-14/+14
| | | | | | NotAllowedException git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@941636 13f79535-47bb-0310-9956-ffa450edef68
* BZ572245: Clustering can force message persistence when one node remains. ↵Kim van der Riet2010-04-281-5/+10
| | | | | | Fix for problem in which forcing persistence on one queue but not another results in an error if a message is sent to both and the message is consumed from the non-forced queue. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@939014 13f79535-47bb-0310-9956-ffa450edef68
* Handle incorrect values for worker-threads option more gracefullyGordon Sim2010-04-261-15/+20
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@938060 13f79535-47bb-0310-9956-ffa450edef68
* Code cleanup Ted Ross2010-04-238-59/+28
| | | | | | | | | | - Removed IdAllocator (it's no longer needed) - Cleaned up the calls to ManagementAgent::addObject to handle durable objects - Removed the deferred call to addObject for durable objects - Removed unneeded calls to self._checkClosed() in qmf.console.Agent git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@937516 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2517 - Broker schema changes to support cluster management.Ted Ross2010-04-231-1/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@937470 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1904: Ensure that all timestamp uses are correctly relative to 1/1/1970 ↵Andrew Stitcher2010-04-231-1/+1
| | | | | | | | | | epoch. - Removed the hacky way to access the internal time value in AbsTime now that there is a defined AbsTime value EPOCH. - Changed all the code to use Duration(EPOCH, abtime) git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@937147 13f79535-47bb-0310-9956-ffa450edef68
* Fixed problems with the broker's QMFv2 mode:Ted Ross2010-04-164-0/+14
| | | | | | | | | | - app_id is a message property, not an application header - even in v2 mode, the agent must respond to v1 schema requests - missing object_id was added to the periodic data updates - epoch/boot-sequence added to agent information (locate-response, heartbeat) git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@935044 13f79535-47bb-0310-9956-ffa450edef68
* Implementation of QPID-2509 (Remove message staging from C++ broker)Kim van der Riet2010-04-158-46/+14
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@934463 13f79535-47bb-0310-9956-ffa450edef68
* Fix for QPID-2470 - Broker does not honour flow-to-disk policy on recoveryKim van der Riet2010-04-138-8/+46
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@933711 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2487: always save the origin, even if queue is already boundKenneth Anthony Giusti2010-04-084-1/+18
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@932032 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2482: prevent duplication of messages that match multiple binding keys ↵Kenneth Anthony Giusti2010-04-061-2/+9
| | | | | | on a topic exchange git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@931257 13f79535-47bb-0310-9956-ffa450edef68
* Merged the changes from the qmf-devel0.7a branch back to the trunk.Ted Ross2010-03-317-11/+19
| | | | | | | | | | | | | | | | | This is a checkpoint along the QMFv2 development path. This update introduces portions of QMFv2 into the code: - The C++ agent (qpid/agent) uses QMFv2 for data and method transfer o The APIs no longer use qpid::framing::* o Consequently, boost is no longer referenced from the API headers. o Agents and Objects are now referenced by strings, not numbers. o Schema transfer still uses the QMFv1 format. - The broker-resident agent can use QMFv1 or QMFv2 based on the command line options. It defaults to QMFv1 for compatibility. - The pure-python QMF console (qmf.console) can concurrently interact with both QMFv1 and QMFv2 agents. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@929716 13f79535-47bb-0310-9956-ffa450edef68
* Remove dead PeriodicTimer code.Alan Conway2010-03-302-107/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@929273 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2454 Messages set with a TTL expire immediately when sent on qpid ↵Carl C. Trieloff2010-03-261-0/+1
| | | | | | queues with LVQ ordering git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@928003 13f79535-47bb-0310-9956-ffa450edef68
* New cluster member pushes store when joining an active cluster.Alan Conway2010-03-121-1/+1
| | | | | | | | | | | | | | | | | | | Previously a broker with a clean store would not be able to join an active cluster because the shtudown-id did not match. This commit ensures that when a broker joins an active cluster, it always pushes its store regardless of status. Clean/dirty status is only compared when forming an initial cluster. This change required splitting initialization into two phases: PRE_INIT: occurs in the Cluster ctor during early-initialize. This phase determines whether or not to push the store. INIT: occurs after Cluster::initialize and does the remaining initialization chores. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@922412 13f79535-47bb-0310-9956-ffa450edef68
* Fix for deadlock beween journal timer & connection threads.Alan Conway2010-03-123-6/+29
| | | | | | | See https://bugzilla.redhat.com/show_bug.cgi?id=570154. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@922411 13f79535-47bb-0310-9956-ffa450edef68
* Added hooks in the broker for QMFv2 management of the broker.Ted Ross2010-03-082-8/+23
| | | | | | | | | Now both DirectExchange and TopicExchange have been subclassed so messages can be redirected to the embedded management agent (in QMFv1, only the topic exchange was subclassed this way). git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@920189 13f79535-47bb-0310-9956-ffa450edef68
* Fix QPID-2435. This patch removes the "publishNow" feature from the broker ↵Ted Ross2010-03-051-1/+1
| | | | | | agent. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@919619 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2412: Support for EXTERNAL mechanism on client-authenticated SSL ↵Gordon Sim2010-03-057-23/+46
| | | | | | | | | | | | 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
* QPID-2429: Use explicit check for void value rather than relaying on empty() ↵Gordon Sim2010-03-041-1/+1
| | | | | | call when matching 'wildcard' binding properties. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@919112 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2386: added username (if available) to log entry for failed authentication.Gordon Sim2010-03-031-19/+22
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@918576 13f79535-47bb-0310-9956-ffa450edef68
* SSL changes for broker listening that weren't checked in with the original ↵Stephen D. Huston2010-02-171-4/+4
| | | | | | Windows broker SSL support (QPID-1403). git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@910785 13f79535-47bb-0310-9956-ffa450edef68
* Added handling for adjusting TTL on outgoing message based on how long a ↵Kim van der Riet2010-02-153-0/+12
| | | | | | message has been on the queue. Added a new TTL test as ClientSessionTest.testTtl. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@910289 13f79535-47bb-0310-9956-ffa450edef68