From c19d6d816c2c3789b58d7502b73bbae964f54720 Mon Sep 17 00:00:00 2001 From: Ted Ross Date: Wed, 2 Sep 2009 20:19:13 +0000 Subject: QPID-2050 - leak of bridge objects Committed patch from Ken Giusti. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@810693 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/broker/Link.cpp | 1 - cpp/src/tests/federation.py | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) (limited to 'cpp') diff --git a/cpp/src/qpid/broker/Link.cpp b/cpp/src/qpid/broker/Link.cpp index 9ce0c710bd..9a845b0339 100644 --- a/cpp/src/qpid/broker/Link.cpp +++ b/cpp/src/qpid/broker/Link.cpp @@ -264,7 +264,6 @@ void Link::ioThreadProcessing() } if (!cancellations.empty()) { for (Bridges::iterator i = cancellations.begin(); i != cancellations.end(); ++i) { - active.push_back(*i); (*i)->cancel(*connection); } cancellations.clear(); diff --git a/cpp/src/tests/federation.py b/cpp/src/tests/federation.py index 174932adf8..1175074093 100755 --- a/cpp/src/tests/federation.py +++ b/cpp/src/tests/federation.py @@ -503,6 +503,20 @@ class FederationTests(TestBase010): self.assertEqual(result.status, 0) result = bridge2.close() self.assertEqual(result.status, 0) + + # extra check: verify we don't leak bridge objects - keep the link + # around and verify the bridge count has gone to zero + + attempts = 0 + bridgeCount = len(qmf.getObjects(_class="bridge")) + while bridgeCount > 0: + attempts += 1 + if attempts >= 5: + self.fail("Bridges didn't clean up") + return + sleep(1) + bridgeCount = len(qmf.getObjects(_class="bridge")) + result = link.close() self.assertEqual(result.status, 0) -- cgit v1.2.1