You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2012/07/04 21:04:39 UTC

svn commit: r1357370 - in /qpid/trunk/qpid/cpp/src/qpid/ha: HaBroker.cpp HaBroker.h Primary.cpp

Author: aconway
Date: Wed Jul  4 19:04:38 2012
New Revision: 1357370

URL: http://svn.apache.org/viewvc?rev=1357370&view=rev
Log:
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.

Modified:
    qpid/trunk/qpid/cpp/src/qpid/ha/HaBroker.cpp
    qpid/trunk/qpid/cpp/src/qpid/ha/HaBroker.h
    qpid/trunk/qpid/cpp/src/qpid/ha/Primary.cpp

Modified: qpid/trunk/qpid/cpp/src/qpid/ha/HaBroker.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/ha/HaBroker.cpp?rev=1357370&r1=1357369&r2=1357370&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/ha/HaBroker.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/ha/HaBroker.cpp Wed Jul  4 19:04:38 2012
@@ -60,9 +60,9 @@ HaBroker::HaBroker(broker::Broker& b, co
       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),

Modified: qpid/trunk/qpid/cpp/src/qpid/ha/HaBroker.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/ha/HaBroker.h?rev=1357370&r1=1357369&r2=1357370&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/ha/HaBroker.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/ha/HaBroker.h Wed Jul  4 19:04:38 2012
@@ -116,13 +116,13 @@ class HaBroker : public management::Mana
     const Settings settings;
 
     mutable sys::Mutex lock;
+    boost::shared_ptr<ConnectionObserver> observer; // Used by Backup and Primary
     std::auto_ptr<Backup> backup;
     std::auto_ptr<Primary> primary;
     qmf::org::apache::qpid::ha::HaBroker* mgmtObject;
     Url clientUrl, brokerUrl;
     std::vector<Url> knownBrokers;
     BrokerStatus status;
-    boost::shared_ptr<ConnectionObserver> observer;
     BrokerInfo brokerInfo;
     Membership membership;
     ReplicationTest replicationTest;

Modified: qpid/trunk/qpid/cpp/src/qpid/ha/Primary.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/ha/Primary.cpp?rev=1357370&r1=1357369&r2=1357370&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/ha/Primary.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/ha/Primary.cpp Wed Jul  4 19:04:38 2012
@@ -97,7 +97,6 @@ Primary::Primary(HaBroker& hb, const Bro
 }
 
 Primary::~Primary() {
-    haBroker.getObserver()->setObserver(boost::shared_ptr<broker::ConnectionObserver>());
     haBroker.getBroker().getConfigurationObservers().remove(configurationObserver);
 }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org