Skip to content

Commit

Permalink
Enqueued WriteReadyCb results in accessing a deleted AgentDnsXmppChan…
Browse files Browse the repository at this point in the history
…nel object.

We need to UnRegisterWriteReady when the object is deleted.

ReEnable xmpp_pubsub_test, cause of failure for an expired ssl cert. Set the expiry to 20 years from now.

Closes-Bug:1531556
Closes-Bug:1547735

Change-Id: I1f1f39635f792327f91426d728ab70665bcaec94
  • Loading branch information
nipak committed Mar 8, 2016
1 parent f9edeba commit 6177985
Show file tree
Hide file tree
Showing 10 changed files with 45 additions and 36 deletions.
1 change: 1 addition & 0 deletions src/bgp/test/bgp_xmpp_channel_test.cc
Expand Up @@ -51,6 +51,7 @@ class XmppChannelMock : public XmppChannel {
}
MOCK_METHOD2(RegisterReceive, void(xmps::PeerId, ReceiveCb));
MOCK_METHOD1(UnRegisterReceive, void(xmps::PeerId));
MOCK_METHOD1(UnRegisterWriteReady, void(xmps::PeerId));
std::string ToString() const { return string("fake"); }
std::string StateName() const { return string("Established"); }

Expand Down
1 change: 1 addition & 0 deletions src/bgp/test/bgp_xmpp_parse_test.cc
Expand Up @@ -32,6 +32,7 @@ class XmppChannelMock : public XmppChannel {
}
void RegisterReceive(xmps::PeerId id, ReceiveCb callback) { }
void UnRegisterReceive(xmps::PeerId id) { }
void UnRegisterWriteReady(xmps::PeerId id) { }
string ToString() const { return string("fake"); }
string StateName() const { return string("Established"); }

Expand Down
1 change: 1 addition & 0 deletions src/vnsw/agent/controller/controller_dns.cc
Expand Up @@ -30,6 +30,7 @@ AgentDnsXmppChannel::AgentDnsXmppChannel(Agent *agent,
AgentDnsXmppChannel::~AgentDnsXmppChannel() {
if (channel_) {
channel_->UnRegisterReceive(xmps::DNS);
channel_->UnRegisterWriteReady(xmps::DNS);
}
}

Expand Down
1 change: 1 addition & 0 deletions src/vnsw/agent/controller/controller_ifmap.cc
Expand Up @@ -36,6 +36,7 @@ AgentIfMapXmppChannel::AgentIfMapXmppChannel(Agent *agent, XmppChannel *channel,

AgentIfMapXmppChannel::~AgentIfMapXmppChannel() {
channel_->UnRegisterReceive(xmps::CONFIG);
channel_->UnRegisterWriteReady(xmps::CONFIG);
}

uint64_t AgentIfMapXmppChannel::NewSeqNumber() {
Expand Down
1 change: 1 addition & 0 deletions src/vnsw/agent/controller/controller_peer.cc
Expand Up @@ -84,6 +84,7 @@ AgentXmppChannel::~AgentXmppChannel() {
BgpPeer *bgp_peer = bgp_peer_id_.get();
assert(bgp_peer == NULL);
channel_->UnRegisterReceive(xmps::BGP);
channel_->UnRegisterWriteReady(xmps::BGP);
}

void AgentXmppChannel::RegisterXmppChannel(XmppChannel *channel) {
Expand Down
1 change: 1 addition & 0 deletions src/vnsw/agent/test/test_cmn_util.h
Expand Up @@ -391,6 +391,7 @@ class XmppChannelMock : public XmppChannel {
void Close() { }
MOCK_METHOD2(RegisterReceive, void(xmps::PeerId, ReceiveCb));
MOCK_METHOD1(UnRegisterReceive, void(xmps::PeerId));
MOCK_METHOD1(UnRegisterWriteReady, void(xmps::PeerId));
std::string ToString() const { return string("fake"); }
std::string StateName() const { return string("Established"); }

Expand Down
26 changes: 13 additions & 13 deletions src/xmpp/testdata/server-build02.key 100755 → 100644
@@ -1,15 +1,15 @@
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQCqSSupa9ppGVHU8ZyART2UMaN+/8uOjbT8YYLDjgQadJObPxUQ
u7LjayLPAFpx0fjiahKbLt30E5v1Imu+X6yMQWbEzBxW9KYsL4zQHzwBZg1JMnMv
CqlzL7D/Xt16uHyrq6uZgWj79nbLnzsbW4IGfMTYHNgGZO+hTPkqHi02nQIDAQAB
AoGBAJ7PHqkirM7XjjnKGuqFqKhMou4OIQkRn3jAd/NovurtTbu7WSoB4xO1FwF2
kuMTr8l4o2GWk+jNYOV89H7XO1MMRPN6LLR07QybfsGvOHAXF0wvTk7SItmQBYho
fbHELZJKqB2xVGmg3rqPQDFvUZpADns792NQSwbwtxakZr0BAkEA3/bvGRuwgGlO
XzrhWSFdm/y6e0ugfxQgieghJ7M9Vghab4MsYeYEbG5Tz+B6ZI8i4SlCGslBbfOO
Hnm1dK76iwJBAMKkpOpbVASVUh4Cu2Ga6ScNMWbkjIhtMs2Yg69/6O/cO0lRALgY
+B7F36Ayap3wb7sRjaeCLGelIBEE65EcQHcCQCj5bmjzjekQWwxFI3FBD3U4WY2x
Gl3lesaAN4Ch5DjXMmRwZTBL+sczsBW6Bepb3Y/AEp3/7/6Drp6Yub/tO10CQQC4
kCQscQMfAXQHLvH9IEXamMDyXt7+8gSNPQQJItF+t6aj46I57rs/esOMhKHiNz3K
9V8LqfxvHv1kBfVU+KQLAkBO3VaeGako9AMqW2uXjgHVzY5xQqJ94A0G4aumiq1m
bTuJK5rM1Pwd+0728wBruSnXrO9nw9Q1cTZZrciieayI
MIICXQIBAAKBgQC+0+fnG1TCgWE52mUMuKtwsiy9IakTKIJ5Tf+aKrr7CWCJEoZr
Z3Lpk0lgqSZ78asLR2rg7TCyQgZySULcNDxti0SQeUzuAjqvqwPLj2uoo5AULPlf
zO5eux2HKOzerpbRNqtyJasn09f8bX8fjCMWDqyPO88q6g4FQzJsYC/H/wIDAQAB
AoGAcrSp9y9kma5vpPj0ONtgolNXtTBgk1WMaCJMfH0m+/M9BegOyMzcNC8GsoW6
zlIMQLFjO2UYGm65tUT4XalAkIZBQzleiUGPrGe36fRwSHySlk/G/apZf6LUTtq8
yzWN4gWM0K4b3Q8C26O2Ts2Qz/D3iWquDTzHnwVwC+PfhLECQQDpjF+Vws0sq4Wp
d+fN4ArcGNp1X6CfGQhp11GvL+PIcnK2zOTAh+EOxI/kYRMUyaVwO++e6nS4Zqfy
0MSmryJrAkEA0SwtwKGmCfGXAISCciijjqY3bWfhnLPOJZQ7OfOh5NkoqDF769WM
IOzvl7nqzhfcWgcSuZtljkbxGEr63cfdvQJAeaBC/ykt1L+WokTxkUPGJA1FZ67f
ZTuSKBycS5GzHGaN2yklUCbzS8+N6C+t0juZTrPH/Ii5NHcxq8CRSQUX9QJBAMkX
XODtRvAWV2JDAhl34k24lF7U2LxKzCuqhwnepEybTQ/tisIeKbpZrrlCHm+F1uyi
EiloMMkIgK4nH2hpxk0CQQCOXySFBSrIl2Lym9ShldGh2u4XLwQTCrD3iIJVGqbo
EnjT48m5lfhV6UMDaeESQWumSIQIyDl6Ox0o66OB93ug
-----END RSA PRIVATE KEY-----
46 changes: 24 additions & 22 deletions src/xmpp/testdata/server-build02.pem 100755 → 100644
@@ -1,26 +1,28 @@
-----BEGIN CERTIFICATE-----
MIIBqzCCARQCCQDcNdwZyj+FpjANBgkqhkiG9w0BAQUFADAaMQswCQYDVQQGEwJV
UzELMAkGA1UECAwCQ0EwHhcNMTUwMzA1MjEyMjU1WhcNMTYwMzA0MjEyMjU1WjAa
MQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0A
MIGJAoGBAKpJK6lr2mkZUdTxnIBFPZQxo37/y46NtPxhgsOOBBp0k5s/FRC7suNr
Is8AWnHR+OJqEpsu3fQTm/Uia75frIxBZsTMHFb0piwvjNAfPAFmDUkycy8KqXMv
sP9e3Xq4fKurq5mBaPv2dsufOxtbggZ8xNgc2AZk76FM+SoeLTadAgMBAAEwDQYJ
KoZIhvcNAQEFBQADgYEAi7/+X06NJ4lfwp2mQCASGhQKzxBZ33SSx/wsgT15ljlg
RcydHTwuZ7SHiS7X7FQoYwL5iXmYifAn4X4fmGZSzeBQCM4FRsvXR1egWkHcBvdw
R9l/L3Kux4salSKPhmSYQ/YYiyzscWxE4ZSsfdKraC92kCMeo1S6FdUPe3nu7vc=
MIIB8TCCAVoCCQC1yDDwZCr+NTANBgkqhkiG9w0BAQsFADA9MQswCQYDVQQGEwJV
UzELMAkGA1UECAwCQ0ExITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0
ZDAeFw0xNjAzMDgyMjQ2NDJaFw0zNjAzMDMyMjQ2NDJaMD0xCzAJBgNVBAYTAlVT
MQswCQYDVQQIDAJDQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRk
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+0+fnG1TCgWE52mUMuKtwsiy9
IakTKIJ5Tf+aKrr7CWCJEoZrZ3Lpk0lgqSZ78asLR2rg7TCyQgZySULcNDxti0SQ
eUzuAjqvqwPLj2uoo5AULPlfzO5eux2HKOzerpbRNqtyJasn09f8bX8fjCMWDqyP
O88q6g4FQzJsYC/H/wIDAQABMA0GCSqGSIb3DQEBCwUAA4GBALtPYLswOiK4DAXJ
9i1Zc3FJe+WFTM2JFgNIVUY5t8qhX1cHzan366P/mm49mhBUCTn0JJsFjiOCImhT
yqxRf2TExKG4XLPCCQP7xP5lLSt9UrqgzF4I079IGv8jjkg35QptAMutpd9jSFdJ
JpIK6fYU4D6uQmeU1i0n/aius0Ut
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQCqSSupa9ppGVHU8ZyART2UMaN+/8uOjbT8YYLDjgQadJObPxUQ
u7LjayLPAFpx0fjiahKbLt30E5v1Imu+X6yMQWbEzBxW9KYsL4zQHzwBZg1JMnMv
CqlzL7D/Xt16uHyrq6uZgWj79nbLnzsbW4IGfMTYHNgGZO+hTPkqHi02nQIDAQAB
AoGBAJ7PHqkirM7XjjnKGuqFqKhMou4OIQkRn3jAd/NovurtTbu7WSoB4xO1FwF2
kuMTr8l4o2GWk+jNYOV89H7XO1MMRPN6LLR07QybfsGvOHAXF0wvTk7SItmQBYho
fbHELZJKqB2xVGmg3rqPQDFvUZpADns792NQSwbwtxakZr0BAkEA3/bvGRuwgGlO
XzrhWSFdm/y6e0ugfxQgieghJ7M9Vghab4MsYeYEbG5Tz+B6ZI8i4SlCGslBbfOO
Hnm1dK76iwJBAMKkpOpbVASVUh4Cu2Ga6ScNMWbkjIhtMs2Yg69/6O/cO0lRALgY
+B7F36Ayap3wb7sRjaeCLGelIBEE65EcQHcCQCj5bmjzjekQWwxFI3FBD3U4WY2x
Gl3lesaAN4Ch5DjXMmRwZTBL+sczsBW6Bepb3Y/AEp3/7/6Drp6Yub/tO10CQQC4
kCQscQMfAXQHLvH9IEXamMDyXt7+8gSNPQQJItF+t6aj46I57rs/esOMhKHiNz3K
9V8LqfxvHv1kBfVU+KQLAkBO3VaeGako9AMqW2uXjgHVzY5xQqJ94A0G4aumiq1m
bTuJK5rM1Pwd+0728wBruSnXrO9nw9Q1cTZZrciieayI
MIICXQIBAAKBgQC+0+fnG1TCgWE52mUMuKtwsiy9IakTKIJ5Tf+aKrr7CWCJEoZr
Z3Lpk0lgqSZ78asLR2rg7TCyQgZySULcNDxti0SQeUzuAjqvqwPLj2uoo5AULPlf
zO5eux2HKOzerpbRNqtyJasn09f8bX8fjCMWDqyPO88q6g4FQzJsYC/H/wIDAQAB
AoGAcrSp9y9kma5vpPj0ONtgolNXtTBgk1WMaCJMfH0m+/M9BegOyMzcNC8GsoW6
zlIMQLFjO2UYGm65tUT4XalAkIZBQzleiUGPrGe36fRwSHySlk/G/apZf6LUTtq8
yzWN4gWM0K4b3Q8C26O2Ts2Qz/D3iWquDTzHnwVwC+PfhLECQQDpjF+Vws0sq4Wp
d+fN4ArcGNp1X6CfGQhp11GvL+PIcnK2zOTAh+EOxI/kYRMUyaVwO++e6nS4Zqfy
0MSmryJrAkEA0SwtwKGmCfGXAISCciijjqY3bWfhnLPOJZQ7OfOh5NkoqDF769WM
IOzvl7nqzhfcWgcSuZtljkbxGEr63cfdvQJAeaBC/ykt1L+WokTxkUPGJA1FZ67f
ZTuSKBycS5GzHGaN2yklUCbzS8+N6C+t0juZTrPH/Ii5NHcxq8CRSQUX9QJBAMkX
XODtRvAWV2JDAhl34k24lF7U2LxKzCuqhwnepEybTQ/tisIeKbpZrrlCHm+F1uyi
EiloMMkIgK4nH2hpxk0CQQCOXySFBSrIl2Lym9ShldGh2u4XLwQTCrD3iIJVGqbo
EnjT48m5lfhV6UMDaeESQWumSIQIyDl6Ox0o66OB93ug
-----END RSA PRIVATE KEY-----
1 change: 1 addition & 0 deletions src/xmpp/xmpp_channel.h
Expand Up @@ -48,6 +48,7 @@ class XmppChannel {
virtual void RegisterReceive(xmps::PeerId, ReceiveCb) = 0;
virtual void UnRegisterReceive(xmps::PeerId) = 0;
virtual void RegisterRxMessageTraceCallback(RxMessageTraceCb cb) = 0;
virtual void UnRegisterWriteReady(xmps::PeerId id) = 0;
virtual void Close() = 0;
virtual std::string ToString() const = 0;
virtual std::string StateName() const = 0;
Expand Down
2 changes: 1 addition & 1 deletion src/xmpp/xmpp_channel_mux.h
Expand Up @@ -47,6 +47,7 @@ class XmppChannelMux : public XmppChannel {

virtual void ProcessXmppMessage(const XmppStanza::XmppMessage *msg);
void WriteReady(const boost::system::error_code &ec);
virtual void UnRegisterWriteReady(xmps::PeerId id);

void HandleStateEvent(xmsm::XmState state);

Expand All @@ -61,7 +62,6 @@ class XmppChannelMux : public XmppChannel {

private:
void RegisterWriteReady(xmps::PeerId, SendReadyCb);
void UnRegisterWriteReady(xmps::PeerId id);

typedef std::map<xmps::PeerId, SendReadyCb> WriteReadyCbMap;
typedef std::map<xmps::PeerId, ReceiveCb> ReceiveCbMap;
Expand Down

0 comments on commit 6177985

Please sign in to comment.