From 179f46270e539569e7c57e763ccd8a49ccf09a84 Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Wed, 4 Jul 2012 19:04:38 +0000 Subject: NO-JIRA: Trivial fix for crash-on-exit bug. Primary::~Primary() no longer resets HaBroker::observer. It is unnecessary since HaBroker unregisters the observer before Primary is destroyed, and it cause sporadic crash on exit because the HaBroker::observer can be reset before ~Primary is called. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1357370 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/cpp/src/qpid/ha/HaBroker.cpp | 2 +- qpid/cpp/src/qpid/ha/HaBroker.h | 2 +- qpid/cpp/src/qpid/ha/Primary.cpp | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) (limited to 'qpid/cpp/src') diff --git a/qpid/cpp/src/qpid/ha/HaBroker.cpp b/qpid/cpp/src/qpid/ha/HaBroker.cpp index 395a3ce6fa..6cd78cab20 100644 --- a/qpid/cpp/src/qpid/ha/HaBroker.cpp +++ b/qpid/cpp/src/qpid/ha/HaBroker.cpp @@ -60,9 +60,9 @@ HaBroker::HaBroker(broker::Broker& b, const Settings& s) broker(b), systemId(broker.getSystem()->getSystemId().data()), settings(s), + observer(new ConnectionObserver(*this, systemId)), mgmtObject(0), status(STANDALONE), - observer(new ConnectionObserver(*this, systemId)), brokerInfo(broker.getSystem()->getNodeName(), // TODO aconway 2012-05-24: other transports? broker.getPort(broker::Broker::TCP_TRANSPORT), systemId), diff --git a/qpid/cpp/src/qpid/ha/HaBroker.h b/qpid/cpp/src/qpid/ha/HaBroker.h index 28fe3c755e..78433cfbd9 100644 --- a/qpid/cpp/src/qpid/ha/HaBroker.h +++ b/qpid/cpp/src/qpid/ha/HaBroker.h @@ -116,13 +116,13 @@ class HaBroker : public management::Manageable const Settings settings; mutable sys::Mutex lock; + boost::shared_ptr observer; // Used by Backup and Primary std::auto_ptr backup; std::auto_ptr primary; qmf::org::apache::qpid::ha::HaBroker* mgmtObject; Url clientUrl, brokerUrl; std::vector knownBrokers; BrokerStatus status; - boost::shared_ptr observer; BrokerInfo brokerInfo; Membership membership; ReplicationTest replicationTest; diff --git a/qpid/cpp/src/qpid/ha/Primary.cpp b/qpid/cpp/src/qpid/ha/Primary.cpp index b315142e70..5eb6b292f7 100644 --- a/qpid/cpp/src/qpid/ha/Primary.cpp +++ b/qpid/cpp/src/qpid/ha/Primary.cpp @@ -97,7 +97,6 @@ Primary::Primary(HaBroker& hb, const BrokerInfo::Set& expect) : } Primary::~Primary() { - haBroker.getObserver()->setObserver(boost::shared_ptr()); haBroker.getBroker().getConfigurationObservers().remove(configurationObserver); } -- cgit v1.2.1