[jboss-jira] [JBoss JIRA] (JGRP-1571) Race condition in tcpgossip discovery
Bela Ban (JIRA)
jira-events at lists.jboss.org
Wed Feb 6 04:50:51 EST 2013
[ https://issues.jboss.org/browse/JGRP-1571?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Bela Ban resolved JGRP-1571.
----------------------------
Resolution: Done
Fixed according to suggested solution
> Race condition in tcpgossip discovery
> -------------------------------------
>
> Key: JGRP-1571
> URL: https://issues.jboss.org/browse/JGRP-1571
> Project: JGroups
> Issue Type: Bug
> Affects Versions: 3.1
> Reporter: Ramky Kandula
> Assignee: Bela Ban
> Fix For: 3.3
>
>
> We are observing a race condition in TCPGOSSIP based discovery.
> A is gossip router and B is a node connecting to gossip router.
> Timer-1 on B starts connecting, does ping.
> Timer-2 on B starts reconnecting
> A sees this new connection and closes the old one from Timer-1 from B.
> Timer-2 on B does ping
> Timer-1 on B tries to do gossip_get and encounters broken pipe as the socket
> is closed.
> This process goes on forever.
> Logs from Gossip Router A
> =========================
> 2012-12-14 13:20:47,687 DEBUG [GossipRouter][] org.jgroups.stack.GossipRouter-
> Accepted connection, socket is
> Socket[addr=/192.168.1.11,port=21009,localport=12001]
> 2012-12-14 13:20:47,687 DEBUG [gossip-handlers--9882][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11] entering
> receive loop
> 2012-12-14 13:20:47,749 TRACE [gossip-handlers--9882][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11] received
> CONNECT(group=TestCluster, addr=dd-ace1-20957,
> logical_name=dd-ace1-20957, physical_addrs=192.168.1.11:7800)
> 2012-12-14 13:20:47,749 DEBUG [gossip-handlers--9882][]
> org.jgroups.stack.GossipRouter- Found old connection[ConnectionHandler[peer:
> /192.168.1.11, logical_addrs: dd-ace1-20957, dd-ace1-20957]] for
> addr[dd-ace1-20957]. Closing old connection ...
> 2012-12-14 13:20:47,749 DEBUG [gossip-handlers--9882][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11,
> logical_addrs: dd-ace1-20957] connection handshake completed, added
> dd-ace1-20957 to group TestCluster
> 2012-12-14 13:20:47,749 TRACE [gossip-handlers--9882][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11,
> logical_addrs: dd-ace1-20957] processed CONNECT(group=TestCluster,
> addr=dd-ace1-20957, logical_name=dd-ace1-20957,
> physical_addrs=192.168.1.11:7800)
> 2012-12-14 13:20:48,875 TRACE [gossip-handlers--9882][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11,
> logical_addrs: dd-ace1-20957] received PING(group=null, addr=null)
> 2012-12-14 13:20:48,875 TRACE [gossip-handlers--9882][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11,
> logical_addrs: dd-ace1-20957] processed PING(group=null, addr=null)
> 2012-12-14 13:20:53,735 TRACE [gossip-handlers--9882][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11,
> logical_addrs: dd-ace1-20957] received CONNECT(group=TestCluster,
> addr=dd-ace1-20957, logical_name=dd-ace1-20957,
> physical_addrs=192.168.1.11:7800)
> 2012-12-14 13:20:53,736 DEBUG [gossip-handlers--9882][]
> org.jgroups.stack.GossipRouter- Found old connection[ConnectionHandler[peer:
> /192.168.1.11, logical_addrs: dd-ace1-20957]] for addr[dd-ace1-20957]. Closing
> old connection ...
> 2012-12-14 13:20:53,736 DEBUG [gossip-handlers--9882][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11,
> logical_addrs: dd-ace1-20957] is being closed
> 2012-12-14 13:20:53,838 DEBUG [gossip-handlers--9882][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11,
> logical_addrs: dd-ace1-20957, dd-ace1-20957] connection handshake completed,
> added dd-ace1-20957 to group TestCluster
> 2012-12-14 13:20:53,838 TRACE [gossip-handlers--9882][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11,
> logical_addrs: dd-ace1-20957, dd-ace1-20957] processed
> CONNECT(group=TestCluster, addr=dd-ace1-20957,
> logical_name=dd-ace1-20957, physical_addrs=192.168.1.11:7800)
> 2012-12-14 13:21:04,023 DEBUG [GossipRouter][] org.jgroups.stack.GossipRouter-
> Accepted connection, socket is
> Socket[addr=/192.168.1.11,port=37357,localport=12001]
> 2012-12-14 13:21:04,023 DEBUG [gossip-handlers--9881][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11] entering
> receive loop
> 2012-12-14 13:21:04,085 TRACE [gossip-handlers--9881][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11] received
> CONNECT(group=TestCluster, addr=dd-ace1-20957,
> logical_name=dd-ace1-20957, physical_addrs=192.168.1.11:7800)
> 2012-12-14 13:21:04,085 DEBUG [gossip-handlers--9881][]
> org.jgroups.stack.GossipRouter- Found old connection[ConnectionHandler[peer:
> /192.168.1.11, logical_addrs: dd-ace1-20957, dd-ace1-20957]] for
> addr[dd-ace1-20957]. Closing old connection ...
> 2012-12-14 13:21:04,086 DEBUG [gossip-handlers--9881][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11,
> logical_addrs: dd-ace1-20957] connection handshake completed, added
> dd-ace1-20957 to group TestCluster
> 2012-12-14 13:21:04,086 TRACE [gossip-handlers--9881][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11,
> logical_addrs: dd-ace1-20957] processed CONNECT(group=TestCluster,
> addr=dd-ace1-20957, logical_name=dd-ace1-20957,
> physical_addrs=192.168.1.11:7800)
> Logs from Gossip Client B
> =========================
> 2012-12-14 13:20:47,687 DEBUG [GossipRouter][] org.jgroups.stack.GossipRouter-
> Accepted connection, socket is
> Socket[addr=/192.168.1.11,port=21009,localport=12001]
> 2012-12-14 13:20:47,687 DEBUG [gossip-handlers--9882][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11] entering
> receive loop
> 2012-12-14 13:20:47,749 TRACE [gossip-handlers--9882][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11] received
> CONNECT(group=TestCluster, addr=dd-ace1-20957,
> logical_name=dd-ace1-20957, physical_addrs=192.168.1.11:7800)
> 2012-12-14 13:20:47,749 DEBUG [gossip-handlers--9882][]
> org.jgroups.stack.GossipRouter- Found old connection[ConnectionHandler[peer:
> /192.168.1.11, logical_addrs: dd-ace1-20957, dd-ace1-20957]] for
> addr[dd-ace1-20957]. Closing old connection ...
> 2012-12-14 13:20:47,749 DEBUG [gossip-handlers--9882][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11,
> logical_addrs: dd-ace1-20957] connection handshake completed, added
> dd-ace1-20957 to group TestCluster
> 2012-12-14 13:20:47,749 TRACE [gossip-handlers--9882][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11,
> logical_addrs: dd-ace1-20957] processed CONNECT(group=TestCluster,
> addr=dd-ace1-20957, logical_name=dd-ace1-20957,
> physical_addrs=192.168.1.11:7800)
> 2012-12-14 13:20:48,875 TRACE [gossip-handlers--9882][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11,
> logical_addrs: dd-ace1-20957] received PING(group=null, addr=null)
> 2012-12-14 13:20:48,875 TRACE [gossip-handlers--9882][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11,
> logical_addrs: dd-ace1-20957] processed PING(group=null, addr=null)
> 2012-12-14 13:20:53,735 TRACE [gossip-handlers--9882][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11,
> logical_addrs: dd-ace1-20957] received CONNECT(group=TestCluster,
> addr=dd-ace1-20957, logical_name=dd-ace1-20957,
> physical_addrs=192.168.1.11:7800)
> 2012-12-14 13:20:53,736 DEBUG [gossip-handlers--9882][]
> org.jgroups.stack.GossipRouter- Found old connection[ConnectionHandler[peer:
> /192.168.1.11, logical_addrs: dd-ace1-20957]] for addr[dd-ace1-20957]. Closing
> old connection ...
> 2012-12-14 13:20:53,736 DEBUG [gossip-handlers--9882][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11,
> logical_addrs: dd-ace1-20957] is being closed
> 2012-12-14 13:20:53,838 DEBUG [gossip-handlers--9882][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11,
> logical_addrs: dd-ace1-20957, dd-ace1-20957] connection handshake completed,
> added dd-ace1-20957 to group TestCluster
> 2012-12-14 13:20:53,838 TRACE [gossip-handlers--9882][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11,
> logical_addrs: dd-ace1-20957, dd-ace1-20957] processed
> CONNECT(group=TestCluster, addr=dd-ace1-20957,
> logical_name=dd-ace1-20957, physical_addrs=192.168.1.11:7800)
> 2012-12-14 13:21:04,023 DEBUG [GossipRouter][] org.jgroups.stack.GossipRouter-
> Accepted connection, socket is
> Socket[addr=/192.168.1.11,port=37357,localport=12001]
> 2012-12-14 13:21:04,023 DEBUG [gossip-handlers--9881][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11] entering
> receive loop
> 2012-12-14 13:21:04,085 TRACE [gossip-handlers--9881][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11] received
> CONNECT(group=TestCluster, addr=dd-ace1-20957,
> logical_name=dd-ace1-20957, physical_addrs=192.168.1.11:7800)
> 2012-12-14 13:21:04,085 DEBUG [gossip-handlers--9881][]
> org.jgroups.stack.GossipRouter- Found old connection[ConnectionHandler[peer:
> /192.168.1.11, logical_addrs: dd-ace1-20957, dd-ace1-20957]] for
> addr[dd-ace1-20957]. Closing old connection ...
> 2012-12-14 13:21:04,086 DEBUG [gossip-handlers--9881][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11,
> logical_addrs: dd-ace1-20957] connection handshake completed, added
> dd-ace1-20957 to group TestCluster
> 2012-12-14 13:21:04,086 TRACE [gossip-handlers--9881][]
> org.jgroups.stack.GossipRouter- ConnectionHandler[peer: /192.168.1.11,
> logical_addrs: dd-ace1-20957] processed CONNECT(group=TestCluster,
> addr=dd-ace1-20957, logical_name=dd-ace1-20957,
> physical_addrs=192.168.1.11:7800)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list