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)

Reply via email to