eventThread isn't shutdown after a connection "session expired" event coming
----------------------------------------------------------------------------

                 Key: ZOOKEEPER-795
                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-795
             Project: Zookeeper
          Issue Type: Bug
          Components: java client
    Affects Versions: 3.3.1
         Environment: ubuntu 10.04
            Reporter: mathieu barcikowski
            Priority: Critical


Hi,

I notice a problem with the eventThread located in ClientCnxn.java file.
The eventThread isn't shutdown after a connection "session expired" event 
coming (i.e. never receive EventOfDeath).

When a session timeout occurs and the session is marked as expired, the 
connexion is fully closed (socket, SendThread...) expect for the eventThread.
As a result, if i create a new zookeeper object and connect through it, I got a 
zombi thread which will never be kill (as for the previous zookeeper object, 
the state is already close, calling close again don't do anything).

So everytime I will create a new zookeeper connection after a expired session, 
I will have a one more zombi EventThread.

How to reproduce :
- Start a zookeeper client connection in debug mode
- Pause the jvm enough time to the expired event occur
- Watch for example with jvisualvm the list of threads, the sendThread is 
succesfully killed, but the EventThread go to wait state for a infinity of time
- if you reopen a new zookeeper connection, and do again the previous steps, 
another EventThread will be present in infinite wait state






-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to