[
https://issues.apache.org/jira/browse/ZOOKEEPER-2126?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14519959#comment-14519959
]
Rakesh R commented on ZOOKEEPER-2126:
-------------------------------------
Thanks [~zxu] and [~surendrasingh].
>From the jira description, it looks like need to find a better way to
>differentiate the old client and the new client as the shutdown logging
>happens later. I prefer not to wait for the {{SendThread}} and {{EventThread}}
>completion instead how about adding the session id in the logs like,
{code}
LOG.info("EventThread shut down for session: 0x{}",
Long.toHexString(getSessionId()));
ZooTrace.logTraceMessage(LOG, ZooTrace.getTextTraceLevel(), "SendThread
exitedloop for session: 0x" + Long.toHexString(getSessionId());
{code}
> 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
> Affects Versions: 3.6.0
> Reporter: zhihai xu
> Assignee: surendra singh lilhore
> Attachments: ZOOKEEPER-2126.patch
>
>
> 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)