Sean Busbey created ACCUMULO-1889:
-------------------------------------
Summary: ZooKeeperInstance close method should mark instance
closed.
Key: ACCUMULO-1889
URL: https://issues.apache.org/jira/browse/ACCUMULO-1889
Project: Accumulo
Issue Type: Bug
Affects Versions: 1.4.5, 1.5.1, 1.6.0
Reporter: Sean Busbey
Assignee: Sean Busbey
(1.4.5 and 1.5.1 impact presumes ACCUMULO-1858 gets applied)
The current close() implementation on ZooKeeperInstance only marks a given
instance as closed if the outstanding client count is 0.
{code}
public synchronized void close() throws AccumuloException {
if (!closed && clientInstances.decrementAndGet() == 0) {
try {
zooCache.close();
ThriftUtil.close();
} catch (InterruptedException e) {
clientInstances.incrementAndGet();
throw new AccumuloException("Issues closing ZooKeeper.");
}
closed = true;
}
}
{code}
This is incorrect for two reason:
1) It allows continued operations on a given ZKI after it has had close()
called on it
2) It allows a given ZKI to decrement the number of open clients more than once
--
This message was sent by Atlassian JIRA
(v6.1#6144)