diff options
| author | Alan Conway <aconway@apache.org> | 2010-12-01 21:33:12 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2010-12-01 21:33:12 +0000 |
| commit | 1e20951003db44b71298649f674664a9e1ba26c5 (patch) | |
| tree | 48e9786d8ea42393504c2ec9478c4c3c516c8c54 /cpp/src/qpid/cluster/Cluster.cpp | |
| parent | e3af2ca02840a6697461532d0059105c5fd08e84 (diff) | |
| download | qpid-python-1e20951003db44b71298649f674664a9e1ba26c5.tar.gz | |
Modified cluster_tests causes broker shut down with invalid-argument error.
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
Diffstat (limited to 'cpp/src/qpid/cluster/Cluster.cpp')
| -rw-r--r-- | cpp/src/qpid/cluster/Cluster.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/cpp/src/qpid/cluster/Cluster.cpp b/cpp/src/qpid/cluster/Cluster.cpp index b7545ad706..37932be735 100644 --- a/cpp/src/qpid/cluster/Cluster.cpp +++ b/cpp/src/qpid/cluster/Cluster.cpp @@ -127,6 +127,7 @@ #include "qpid/cluster/UpdateClient.h" #include "qpid/cluster/RetractClient.h" #include "qpid/cluster/FailoverExchange.h" +#include "qpid/cluster/UpdateDataExchange.h" #include "qpid/cluster/UpdateExchange.h" #include "qpid/cluster/ClusterTimer.h" @@ -197,7 +198,7 @@ namespace _qmf = ::qmf::org::apache::qpid::cluster; * Currently use SVN revision to avoid clashes with versions from * different branches. */ -const uint32_t Cluster::CLUSTER_VERSION = 964709; +const uint32_t Cluster::CLUSTER_VERSION = 1039478; struct ClusterDispatcher : public framing::AMQP_AllOperations::ClusterHandler { qpid::cluster::Cluster& cluster; @@ -289,6 +290,10 @@ Cluster::Cluster(const ClusterSettings& set, broker::Broker& b) : // without modifying delivery-properties.exchange. broker.getExchanges().registerExchange( boost::shared_ptr<broker::Exchange>(new UpdateExchange(this))); + // Update-data exchange is used for passing data that may be too large + // for single control frame. + broker.getExchanges().registerExchange( + boost::shared_ptr<broker::Exchange>(new UpdateDataExchange(this, broker.getManagementAgent()))); // Load my store status before we go into initialization if (! broker::NullMessageStore::isNullStore(&broker.getStore())) { |
