From c1301949eb0dd00e78ac9fb080fae382225af950 Mon Sep 17 00:00:00 2001 From: Phil Yang Date: Mon, 7 Mar 2016 14:08:09 +0800 Subject: [PATCH] HBASE-15408 MiniCluster's master crash on initialization and unittest timeout --- .../apache/hadoop/hbase/master/AssignmentManager.java | 16 +++++++++++++++- .../org/apache/hadoop/hbase/util/JVMClusterUtil.java | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java index 1110db3..e3ba1a2 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java @@ -1674,7 +1674,21 @@ public class AssignmentManager { TableState.State.ENABLING); // Region assignment from META - List results = MetaTableAccessor.fullScanRegions(server.getConnection()); + List results = new ArrayList<>(); + int retry = 2; + IOException ex = null; + while (retry-- > 0) { + try { + results = MetaTableAccessor.fullScanRegions(server.getConnection()); + ex = null; + break; + } catch (IOException e){ + ex = e; + } + } + if (ex != null) { + throw ex; + } // Get any new but slow to checkin region server that joined the cluster Set onlineServers = serverManager.getOnlineServers().keySet(); // Set of offline servers to be returned 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()) { -- 2.5.4 (Apple Git-61)