From c55b3fe603cd8910f7e3cb4f5e92b694c0883600 Mon Sep 17 00:00:00 2001 From: Phil Yang Date: Mon, 7 Mar 2016 22:18:16 +0800 Subject: [PATCH] HBASE-15408 MiniCluster's master crashes and unit tests timeout --- .../org/apache/hadoop/hbase/util/JVMClusterUtil.java | 2 +- .../java/org/apache/hadoop/hbase/MiniHBaseCluster.java | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/JVMClusterUtil.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/JVMClusterUtil.java index 4db20f2..d265fee 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/JVMClusterUtil.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/JVMClusterUtil.java @@ -204,7 +204,7 @@ public class JVMClusterUtil { // Wait for an active master to be initialized (implies being master) // with this, when we return the cluster is complete startTime = System.currentTimeMillis(); - final int maxwait = 200000; + final int maxwait = 30000; while (true) { JVMClusterUtil.MasterThread t = findActiveMaster(masters); if (t != null && t.master.isInitialized()) { diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java index 3bd3c3f..614c70a 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java @@ -43,6 +43,7 @@ import org.apache.hadoop.hbase.util.JVMClusterUtil; import org.apache.hadoop.hbase.util.JVMClusterUtil.MasterThread; import org.apache.hadoop.hbase.util.JVMClusterUtil.RegionServerThread; import org.apache.hadoop.hbase.util.Threads; +import org.apache.zookeeper.KeeperException; /** * This class creates a single process HBase cluster. @@ -98,6 +99,21 @@ public class MiniHBaseCluster extends HBaseCluster { return this.conf; } + public static class MiniHBaseClusterMaster extends HMaster { + private static final Log LOG = LogFactory.getLog(MiniHBaseClusterMaster.class); + + public MiniHBaseClusterMaster(Configuration conf, CoordinatedStateManager csm) + throws IOException, KeeperException { + super(conf, csm); + } + + @Override + public void abort(final String msg, final Throwable t) { + LOG.warn("virtual abort: "+msg, t); + t.printStackTrace(); + } + } + /** * Subclass so can get at protected methods (none at moment). Also, creates * a FileSystem instance per instantiation. Adds a shutdown own FileSystem @@ -203,7 +219,7 @@ public class MiniHBaseCluster extends HBaseCluster { throws IOException, InterruptedException { try { if (masterClass == null){ - masterClass = HMaster.class; + masterClass = MiniHBaseClusterMaster.class; } if (regionserverClass == null){ regionserverClass = MiniHBaseCluster.MiniHBaseClusterRegionServer.class; -- 2.5.4 (Apple Git-61)