What could happen if we add if (configuration.isDuplex() && duplexInitiatingConnection == null) { // initiator side of duplex network remoteBrokerNameKnownLatch.countDown(); }
into the stop() method of DemandForwardingBridgeSupport class ? Eric-AWL Eric-AWL wrote: > > Hi > > I'm sure that I identified a Latch problem in Multicast Network Discovery > mechanism on Duplex connection > > The multicast notifier thread is blocked. here the trace > > "Notifier-MulticastDiscoveryAgent-listener:DiscoveryNetworkConnector:NOCSupervisorP5-ADMIN-OUT-IN:BrokerService[SIBBusModule-NOCP5-tpnocp08s-bus]" > daemon prio=10 tid=0x0000000044ff2400 nid=0x1389 waiting on condition > [0x0000000044c26000..0x0000000044c26b90] > java.lang.Thread.State: WAITING (parking) > at sun.misc.Unsafe.park(Native Method) > - parking to wait for <0x00002aaab3dd66f0> (a > java.util.concurrent.CountDownLatch$Sync) > at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158) > at > java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:747) > at > java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:905) > at > java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1217) > at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:207) > at > org.apache.activemq.network.DemandForwardingBridgeSupport.start(DemandForwardingBridgeSupport.java:231) > at > org.apache.activemq.network.DiscoveryNetworkConnector.onServiceAdd(DiscoveryNetworkConnector.java:114) > at > org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent$2.run(MulticastDiscoveryAgent.java:484) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:619) > > The problem appears when the network is quickly and alternatively on/off > between the two components. > The bridge is created in one direction, but the answer can not be > received. > > The thread is blocked on the CountDownLatch. Even if multicast frames are > received, the component can not establish a new network connection. > > Here are an corresponding activemq trace > > When it is OK : > 2010-06-22 22:56:24,500 [-tpnocp08s-bus]] INFO DiscoveryNetworkConnector > - Establishing network connection from > vm://SIBBusModule-NOCP5-tpnocp08s-bus to > tcp://tpnocp11v-bus.vdm.priv.amm.noc:14101?useLocalHost=false > 2010-06-22 22:56:26,083 [nocp08s-bus#160] INFO DemandForwardingBridge > - Network connection between vm://SIBBusModule-NOCP5-tpnocp08s-bus#160 and > tcp://tpnocp11v-bus.vdm.priv.amm.noc/10.18.126.30:14101(SIBBusSupervisor-tpnocp11v-bus) > has been established. > > 2010-06-22 22:57:34,807 [-tpnocp08s-bus]] INFO DemandForwardingBridge > - SIBBusModule-NOCP5-tpnocp08s-bus bridge to > SIBBusSupervisor-tpnocp11v-bus stopped > > 2010-06-22 22:57:34,811 [-tpnocp08s-bus]] INFO DiscoveryNetworkConnector > - Establishing network connection from > vm://SIBBusModule-NOCP5-tpnocp08s-bus to > tcp://tpnocp11v-bus.vdm.priv.amm.noc:14101?useLocalHost=false > 2010-06-22 22:57:39,064 [nocp08s-bus#162] INFO DemandForwardingBridge > - Network connection between vm://SIBBusModule-NOCP5-tpnocp08s-bus#162 and > tcp://tpnocp11v-bus.vdm.priv.amm.noc/10.18.126.30:14101(SIBBusSupervisor-tpnocp11v-bus) > has been established. > > 2010-06-22 22:58:42,578 [-tpnocp08s-bus]] INFO DemandForwardingBridge > - SIBBusModule-NOCP5-tpnocp08s-bus bridge to > SIBBusSupervisor-tpnocp11v-bus stopped > > When it is KO : "Unknown" > > 2010-06-22 22:58:42,648 [-tpnocp08s-bus]] INFO DiscoveryNetworkConnector > - Establishing network connection from > vm://SIBBusModule-NOCP5-tpnocp08s-bus to > tcp://tpnocp11v-bus.vdm.priv.amm.noc:14101?useLocalHost=false > 2010-06-22 22:59:18,031 [18.126.30:14101] WARN DemandForwardingBridge > - Network connection between vm://SIBBusModule-NOCP5-tpnocp08s-bus#164 and > tcp://tpnocp11v-bus.vdm.priv.amm.noc/10.18.126.30:14101 shutdown due to a > remote error: java.net.SocketException: Connection reset > 2010-06-22 22:59:18,033 [NetworkBridge ] INFO DemandForwardingBridge > - SIBBusModule-NOCP5-tpnocp08s-bus bridge to Unknown stopped > > > Here is the other side corresponding activemq trace > > activemq-server.log:2010-06-22 22:55:44,295 [26.190.27:40517] INFO > TransportConnection - Created Duplex Bridge back to > SIBBusModule-NOCP5-tpnocp08s-bus > > activemq-server.log:2010-06-22 22:56:24,438 [26.190.27:40517] INFO > DemandForwardingBridge - SIBBusSupervisor-tpnocp11v-bus bridge to > SIBBusModule-NOCP5-tpnocp08s-bus stopped > > activemq-server.log:2010-06-22 22:56:26,135 [26.190.27:40518] INFO > TransportConnection - Created Duplex Bridge back to > SIBBusModule-NOCP5-tpnocp08s-bus > activemq-server.log:2010-06-22 22:56:26,135 [ocp11v-bus#1770] INFO > DemandForwardingBridge - Network connection between > vm://SIBBusSupervisor-tpnocp11v-bus#1770 and > tcp:///10.26.190.27:40518(SIBBusModule-NOCP5-tpnocp08s-bus) has been > established. > > activemq-server.log:2010-06-22 22:57:34,818 [26.190.27:40518] INFO > DemandForwardingBridge - SIBBusSupervisor-tpnocp11v-bus bridge to > SIBBusModule-NOCP5-tpnocp08s-bus stopped > > activemq-server.log:2010-06-22 22:57:39,153 [26.190.27:40519] INFO > TransportConnection - Created Duplex Bridge back to > SIBBusModule-NOCP5-tpnocp08s-bus > activemq-server.log:2010-06-22 22:57:39,153 [ocp11v-bus#1806] INFO > DemandForwardingBridge - Network connection between > vm://SIBBusSupervisor-tpnocp11v-bus#1806 and > tcp:///10.26.190.27:40519(SIBBusModule-NOCP5-tpnocp08s-bus) has been > established. > > activemq-server.log:2010-06-22 22:58:44,328 [26.190.27:40519] INFO > DemandForwardingBridge - SIBBusSupervisor-tpnocp11v-bus bridge to > SIBBusModule-NOCP5-tpnocp08s-bus stopped > > > Eric-AWL > -- View this message in context: http://old.nabble.com/MultiCast-Discovery-and-refusal-of-connection-tp28827529p29084235.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.