[ https://issues.apache.org/jira/browse/ZOOKEEPER-2375?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Rakesh R updated ZOOKEEPER-2375: -------------------------------- Summary: Prevent multiple initialization of login object inside every ZooKeeperSaslClient instance (was: Prevent multiple initialization of login object) > Prevent multiple initialization of login object inside every > ZooKeeperSaslClient instance > ----------------------------------------------------------------------------------------- > > 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)