[ https://issues.apache.org/jira/browse/ZOOKEEPER-2375?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15172231#comment-15172231 ]
Arshad Mohammad commented on ZOOKEEPER-2375: -------------------------------------------- Good work [~yuemeng] +1 (non-binding) for patch ZOOKEEPER-2375_02.patch > 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.4.6, 3.4.8, 3.5.0, 3.5.1 > Reporter: yuemeng > Priority: Blocker > Fix For: 3.4.9, 3.5.2, 3.6.0 > > Attachments: ZOOKEEPER-2375.patch, ZOOKEEPER-2375_01.patch, > ZOOKEEPER-2375_02.patch > > > 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 own 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 login > 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)