[jboss-jira] [JBoss JIRA] Commented: (JGRP-682) TUNNEL: reconnector thread is not started in certain scenarios

Bela Ban (JIRA) jira-events at lists.jboss.org
Tue Feb 5 04:56:03 EST 2008


    [ http://jira.jboss.com/jira/browse/JGRP-682?page=comments#action_12398184 ] 
            
Bela Ban commented on JGRP-682:
-------------------------------

Unit test is GossipRouterTest

> TUNNEL: reconnector thread is not started in certain scenarios
> --------------------------------------------------------------
>
>                 Key: JGRP-682
>                 URL: http://jira.jboss.com/jira/browse/JGRP-682
>             Project: JGroups
>          Issue Type: Bug
>            Reporter: Bela Ban
>         Assigned To: Vladimir Blagojevic
>             Fix For: 2.7, 2.6.2
>
>
> This is in TUNNEL.StubConnectionListener:
> public void connectionStatusChange(int newState) {
> 			if(currentState == RouterStub.STATUS_CONNECTED && newState == RouterStub.STATUS_CONNECTION_LOST){
> 				startReconnecting();	
> 		    }
> 			else if(currentState != RouterStub.STATUS_CONNECTED && newState == RouterStub.STATUS_CONNECTED){
> 				stopReconnecting();
> 				Thread receiver = new Thread(Util.getGlobalThreadGroup(), new TunnelReceiver(), "TUNNEL receiver");
> 				receiver.setDaemon(true);
> 				receiver.start();
> 			}
> 			currentState = newState;
> 		}    	
> # 1: why do we need 3 states ? Why not just CONNECTED and DISCONNECTED ?
> #2: the logic above is incorrect, as it doesn't handle *all* state transitions ! For example, if we go from DISCONNECTED to CONNECTION_LOST, we will *not* start the reconnector thread !
> We can reproduce #2 through the following steps:
> - Start node A (channel with with tunnel.xml) (GossipRouter is not running)
> - Start node B (start GossipRouter then channel with tunnel.xml)
> ==> The nodes will not merge. Reason: there is never a CONNECT from node A, only REGISTER calls. If there is no CONNECT, we never set the GossipRouter$AddressEntry.output field and therefore can never send anything !

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list