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

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


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.6.2, 2.7


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