Repository: hbase Updated Branches: refs/heads/branch-1.2 b31349243 -> b89a40c99
HBASE-19102 TestZooKeeperMainServer fails with KeeperException Signed-off-by: Michael Stack <st...@apache.org> Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/b89a40c9 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/b89a40c9 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/b89a40c9 Branch: refs/heads/branch-1.2 Commit: b89a40c990580402f70e427eec37194166885fab Parents: b313492 Author: Michael Stack <st...@apache.org> Authored: Thu Oct 26 21:05:04 2017 -0700 Committer: Michael Stack <st...@apache.org> Committed: Fri Nov 3 11:50:25 2017 -0700 ---------------------------------------------------------------------- .../hadoop/hbase/zookeeper/ZooKeeperMainServer.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/b89a40c9/hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.java index e81da59..5415fd6 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperMainServer.java @@ -20,7 +20,9 @@ package org.apache.hadoop.hbase.zookeeper; import java.io.IOException; +import java.util.concurrent.TimeUnit; +import org.apache.curator.shaded.com.google.common.base.Stopwatch; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HBaseInterfaceAudience; @@ -48,6 +50,15 @@ public class ZooKeeperMainServer { public HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain(String[] args) throws IOException, InterruptedException { super(args); + // Make sure we are connected before we proceed. Can take a while on some systems. If we + // run the command without being connected, we get ConnectionLoss KeeperErrorConnection... + Stopwatch stopWatch = Stopwatch.createStarted(); + while (!this.zk.getState().isConnected()) { + Thread.sleep(1); + if (stopWatch.elapsed(TimeUnit.SECONDS) > 10) { + throw new InterruptedException("Failed connect " + this.zk); + } + } } /** @@ -100,6 +111,8 @@ public class ZooKeeperMainServer { } } // If command-line arguments, run our hack so they are executed. + // ZOOKEEPER-1897 was committed to zookeeper-3.4.6 but elsewhere in this class we say + // 3.4.6 breaks command-processing; TODO. if (hasCommandLineArguments(args)) { HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain zkm = new HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain(newArgs);