From 82091ce825923252d7a224ebf771be61e8dd15a2 Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Tue, 30 Jun 2009 20:51:38 +0000 Subject: Fix cluster race condition with connections closed by broker while in use. If a client is using a connection that is closed at the broker end because of an error, there is a race condition that allows the connection to be incorrectly re-created on replica brokers which can cause those brokers to exit with an error that does not occur on the directly connected broker. The fix: explicitly announce new connections, shadow connections are no longer implicitly created on first use. Make error-check a cluster control so it can be handled independently of the lifecycle of the connection where an error initially occured. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@789947 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/cluster/Multicaster.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'cpp/src/qpid/cluster/Multicaster.cpp') diff --git a/cpp/src/qpid/cluster/Multicaster.cpp b/cpp/src/qpid/cluster/Multicaster.cpp index fee13c92c8..4d02d58efe 100644 --- a/cpp/src/qpid/cluster/Multicaster.cpp +++ b/cpp/src/qpid/cluster/Multicaster.cpp @@ -62,7 +62,7 @@ void Multicaster::mcast(const Event& e) { { sys::Mutex::ScopedLock l(lock); LATENCY_TRACK(cpgLatency.start()); - if (e.getType() == DATA && e.isConnection() && holding) { + if (e.isConnection() && holding) { holdingQueue.push_back(e); return; } -- cgit v1.2.1