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.

Reply via email to