Description
(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.
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; } }
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
Attachments
Attachments
Issue Links
- depends upon
-
ACCUMULO-1858 Backport fix for Accumulo-1379 PermGen Leak to 1.4 and 1.5
- Resolved
- links to