You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2016/06/07 23:06:56 UTC
[8/8] hbase git commit: HBASE-15803 ZooKeeperWatcher's constructor
can leak a ZooKeeper instance with throwing ZooKeeperConnectionException when
canCreateBaseZNode is true
HBASE-15803 ZooKeeperWatcher's constructor can leak a ZooKeeper instance with throwing ZooKeeperConnectionException when canCreateBaseZNode is true
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/95694adc
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/95694adc
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/95694adc
Branch: refs/heads/0.98
Commit: 95694adc5f63a5dfe028716f301670991d831a84
Parents: e26800c
Author: tedyu <yu...@gmail.com>
Authored: Tue Jun 7 09:14:01 2016 -0700
Committer: Andrew Purtell <ap...@apache.org>
Committed: Tue Jun 7 15:37:21 2016 -0700
----------------------------------------------------------------------
.../apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/95694adc/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java
index be79e05..57347e6 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java
@@ -171,7 +171,17 @@ public class ZooKeeperWatcher implements Watcher, Abortable, Closeable {
this.recoverableZooKeeper = ZKUtil.connect(conf, quorum, pendingWatcher, identifier);
pendingWatcher.prepare(this);
if (canCreateBaseZNode) {
- createBaseZNodes();
+ try {
+ createBaseZNodes();
+ } catch (ZooKeeperConnectionException zce) {
+ try {
+ this.recoverableZooKeeper.close();
+ } catch (InterruptedException ie) {
+ LOG.debug("Encountered InterruptedException when closing " + this.recoverableZooKeeper);
+ Thread.currentThread().interrupt();
+ }
+ throw zce;
+ }
}
}