[
https://issues.apache.org/jira/browse/ACCUMULO-1889?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13854378#comment-13854378
]
Bill Havanki commented on ACCUMULO-1889:
----------------------------------------
Thanks for the information! It might be good to try separating the instance
information, like ID and zookeepers, from the active components that require
closure, so that it's easier to make cases such as this one easier to grok.
> 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
> Fix For: 1.4.5, 1.5.1, 1.6.0
>
> Attachments: ACCUMULO-1889.1.patch.txt
>
>
> (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.4#6159)