You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Benjamin Reed (JIRA)" <ji...@apache.org> on 2010/08/17 22:08:16 UTC

[jira] Updated: (ZOOKEEPER-795) eventThread isn't shutdown after a connection "session expired" event coming

     [ https://issues.apache.org/jira/browse/ZOOKEEPER-795?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Benjamin Reed updated ZOOKEEPER-795:
------------------------------------

        Status: Resolved  (was: Patch Available)
    Resolution: Fixed

Committed revision 986470. in branch 3.3


> 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
>            Assignee: Sergey Doroshenko
>            Priority: Blocker
>             Fix For: 3.3.2, 3.4.0
>
>         Attachments: ExpiredSessionThreadLeak.java, ZOOKEEPER-795.patch, ZOOKEEPER-795.patch
>
>
> 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.