Do not refer to instance variables in constructor parameters initialization

Bug #1649415 reported by Ananth Suryanarayana
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Juniper Openstack
Status tracked in Trunk
R3.2
Fix Committed
Low
Ananth Suryanarayana
Trunk
Fix Committed
Low
Ananth Suryanarayana

Bug Description

Tools like valgrind does not like it.. IIRC, an issue was also seen (crash) once in production/test environment

diff --git a/src/bgp/bgp_peer.cc b/src/bgp/bgp_peer.cc
index 4f3335f..941a164 100644
--- a/src/bgp/bgp_peer.cc
+++ b/src/bgp/bgp_peer.cc
@@ -420,8 +420,6 @@ BgpPeer::BgpPeer(BgpServer *server, RoutingInstance *instance,
                          BgpProto::IBGP : BgpProto::EBGP),
           state_machine_(BgpObjectFactory::Create<StateMachine>(this)),
           peer_close_(new BgpPeerClose(this)),
- close_manager_(BgpObjectFactory::Create<PeerCloseManager>(
- peer_close_.get())),
           peer_stats_(new PeerStats(this)),
           deleter_(new DeleteActor(this)),
           instance_delete_ref_(this, instance ? instance->deleter() : NULL),
@@ -429,6 +427,8 @@ BgpPeer::BgpPeer(BgpServer *server, RoutingInstance *instance,
           total_flap_count_(0),
           last_flap_(0),
           inuse_authkey_type_(AuthenticationData::NIL) {
+ close_manager_.reset(
+ BgpObjectFactory::Create<PeerCloseManager>(peer_close_.get()));
     ostringstream oss1;
     oss1 << peer_key_.endpoint.address();
     if (peer_key_.endpoint.port() != BgpConfigManager::kDefaultPort)
diff --git a/src/bgp/bgp_xmpp_channel.cc b/src/bgp/bgp_xmpp_channel.cc
index aa747b0..2beb651 100644
--- a/src/bgp/bgp_xmpp_channel.cc
+++ b/src/bgp/bgp_xmpp_channel.cc
@@ -464,10 +464,8 @@ BgpXmppChannel::BgpXmppChannel(XmppChannel *channel,
       bgp_server_(bgp_server),
       peer_(new XmppPeer(bgp_server, this)),
       peer_close_(new BgpXmppPeerClose(this)),
- close_manager_(BgpObjectFactory::Create<PeerCloseManager>(
- peer_close_.get())),
       peer_stats_(new PeerStats(this)),
- bgp_policy_(peer_->PeerType(), RibExportPolicy::XMPP, -1, 0),
+ bgp_policy_(BgpProto::XMPP, RibExportPolicy::XMPP, -1, 0),
       manager_(manager),
       delete_in_progress_(false),
       deleted_(false),
@@ -484,6 +482,8 @@ BgpXmppChannel::BgpXmppChannel(XmppChannel *channel,
             channel->GetTaskInstance(),
             boost::bind(&BgpXmppChannel::MembershipResponseHandler, this, _1)),
       lb_mgr_(new LabelBlockManager()) {
+ close_manager_.reset(
+ BgpObjectFactory::Create<PeerCloseManager>(peer_close_.get()));
     if (bgp_server) {
         eor_receive_timer_ =
             TimerManager::CreateTimer(*bgp_server->ioservice(),

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] master

Review in progress for https://review.opencontrail.org/27153
Submitter: Ananth Suryanarayana (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] R3.2

Review in progress for https://review.opencontrail.org/27154
Submitter: Ananth Suryanarayana (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : A change has been merged

Reviewed: https://review.opencontrail.org/27154
Committed: http://github.org/Juniper/contrail-controller/commit/89b71f0c4fc31e0cfd66fabae9666ac12ac939fe
Submitter: Zuul (<email address hidden>)
Branch: R3.2

commit 89b71f0c4fc31e0cfd66fabae9666ac12ac939fe
Author: Ananth Suryanarayana <email address hidden>
Date: Mon Dec 12 14:21:14 2016 -0800

Do not refer to instance variables in constructor parameters initialization

Tools like valgrind does not like it.. IIRC, an issue was also seen (crash) once in production/test environment

Change-Id: I3123acfb25a28fe8acd5d828adca1150101783b0
Closes-Bug: 1649415

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] master

Review in progress for https://review.opencontrail.org/27153
Submitter: Ananth Suryanarayana (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : A change has been merged

Reviewed: https://review.opencontrail.org/27153
Committed: http://github.org/Juniper/contrail-controller/commit/4663b56e6fa09a0408905a9d58bc7db83bc061d0
Submitter: Zuul (<email address hidden>)
Branch: master

commit 4663b56e6fa09a0408905a9d58bc7db83bc061d0
Author: Ananth Suryanarayana <email address hidden>
Date: Mon Dec 12 14:21:14 2016 -0800

Do not refer to instance variables in constructor parameters initialization

Tools like valgrind does not like it.. IIRC, an issue was also seen (crash) once in production/test environment

Change-Id: I3123acfb25a28fe8acd5d828adca1150101783b0
Closes-Bug: 1649415

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.