[
https://issues.apache.org/jira/browse/ZOOKEEPER-2407?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15217822#comment-15217822
]
sunhaitao commented on ZOOKEEPER-2407:
--------------------------------------
my suggestion is in ZooKeeper close method, remove the check for zookeeper
state, regardless of the fact whether zookeeper is in connected or authfailed
state, all close the send thread and event thread
> EventThread in ClientCnxn can't be closed when SendThread exits because of
> auth failed during reconnection
> ----------------------------------------------------------------------------------------------------------
>
> Key: ZOOKEEPER-2407
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2407
> Project: ZooKeeper
> Issue Type: Bug
> Affects Versions: 3.5.0
> Reporter: sunhaitao
> Attachments: zookeeper-2407.patch
>
>
> EventThread in ClientCnxn can't be closed when SendThread exits because of
> auth failed during reconnection.
> for send thread if it is in authfailed state, the send thread exits,but the
> event thread is still running.
> observation:
> use jstack tho check the thread running they find the send thread no longer
> exists but event thread is still threre
> even when we call zookeeper.close(),the eventthread is still there.
> Stack trace:
> sun.misc.Unsafe.park(Native Method)
> java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
> java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
> org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:514)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)