zhihai xu created ZOOKEEPER-2126:
------------------------------------

             Summary: ClientCnxn.close doesn't wait for eventThread exit which 
cause out of order log when close Zookeeper client session.
                 Key: ZOOKEEPER-2126
                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2126
             Project: ZooKeeper
          Issue Type: Improvement
            Reporter: zhihai xu


We saw the following out of order log when close Zookeeper client session.
{code}
2015-02-16 06:01:12,985 INFO org.apache.zookeeper.ZooKeeper: Session: 
0x24b8df4044005d4 closed
.....................................
2015-02-16 06:01:12,995 INFO org.apache.zookeeper.ClientCnxn: EventThread shut 
down
{code}

This logs are very confusing if a new Zookeeper client session is created 
between these two logs. We may think new Zookeeper client session shutdown it 
EventThread instead of the old closed Zookeeper client session.

Should we wait for sendThread and eventThread died in the ClientCnxn.close?
We can add the following code in ClientCnxn.close.
{code}
sendThread.join(timeout);
eventThread.join(timeout);
{code}
with the change, we won't interleave old closed session with new session.
We can also create a new close API to support this so we won't affect the old 
code if people use old close API.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to