yuemeng created ZOOKEEPER-2375:
----------------------------------
Summary: The synchronize method of createSaslClient in
ZooKeeperSaslClient can't be synchronize
Key: ZOOKEEPER-2375
URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2375
Project: ZooKeeper
Issue Type: Bug
Components: java client
Affects Versions: 3.5.1, 3.5.0, 3.4.8, 3.4.6
Reporter: yuemeng
Fix For: 3.5.2
If there are exist many ZooKeeperSaslClient instance in one process,each
ZooKeeperSaslClient instance will be call synchronize method
createSaslClient,But each ZooKeeperSaslClient instance will be lock the current
object(that is say ,the synchronize only for lock it's onwe object) ,but many
instances can access the static variable login,the synchronize can't prevent
other threads access the static login object,it will be cause more than one
ZooKeeperSaslClient instances use the same login object,and
login.startThreadIfNeeded() will be called more than one times for same thread
object,it wll cause problem:
ERROR | [Executor task launch worker-1-SendThread(fi1:24002)] | Exception
while trying to create SASL client: java.lang.IllegalThreadStateException |
org.apache.zookeeper.client.ZooKeeperSaslClient.createSaslClient(ZooKeeperSaslClient.java:305)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)