Repository: hbase
Updated Branches:
  refs/heads/branch-1.0 3d285cbad -> 67b8fa8ca


HBASE-13526 TestRegionServerReportForDuty can be flaky: hang or timeout


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/67b8fa8c
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/67b8fa8c
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/67b8fa8c

Branch: refs/heads/branch-1.0
Commit: 67b8fa8ca3c164502307251459cf3a50717be704
Parents: 3d285cb
Author: Jerry He <jerry...@apache.org>
Authored: Wed Apr 22 23:07:09 2015 -0700
Committer: Jerry He <jerry...@apache.org>
Committed: Wed Apr 22 23:07:09 2015 -0700

----------------------------------------------------------------------
 .../TestRegionServerReportForDuty.java            | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/67b8fa8c/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerReportForDuty.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerReportForDuty.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerReportForDuty.java
index 28e2c17..5778c6c 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerReportForDuty.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerReportForDuty.java
@@ -91,6 +91,8 @@ public class TestRegionServerReportForDuty {
     master.start();
     rs.start();
 
+    waitForClusterOnline(master);
+
     // Add a 2nd region server
     cluster.getConfiguration().set(HConstants.REGION_SERVER_IMPL, 
MyRegionServer.class.getName());
     rs2 = cluster.addRegionServer();
@@ -100,7 +102,7 @@ public class TestRegionServerReportForDuty {
     LOG.debug("Starting 2nd region server: " + 
rs2.getRegionServer().getServerName());
     rs2.start();
 
-    waitForClusterOnline(master);
+    waitForSecondRsStarted();
 
     // Stop the current master.
     master.getMaster().stop("Stopping master");
@@ -125,8 +127,7 @@ public class TestRegionServerReportForDuty {
 
   private void waitForClusterOnline(MasterThread master) throws 
InterruptedException {
     while (true) {
-      if (master.getMaster().isInitialized()
-          && ((MyRegionServer) rs2.getRegionServer()).getRpcStubCreatedFlag() 
== true) {
+      if (master.getMaster().isInitialized()) {
         break;
       }
       Thread.sleep(SLEEP_INTERVAL);
@@ -135,6 +136,16 @@ public class TestRegionServerReportForDuty {
     rs.waitForServerOnline();
   }
 
+  private void waitForSecondRsStarted() throws InterruptedException {
+    while (true) {
+      if (((MyRegionServer) rs2.getRegionServer()).getRpcStubCreatedFlag() == 
true) {
+        break;
+      }
+      Thread.sleep(SLEEP_INTERVAL);
+      LOG.debug("Waiting 2nd RS to be started ...");
+    }
+  }
+
   // Create a Region Server that provide a hook so that we can wait for the 
master switch over
   // before continuing reportForDuty to the mater.
   // The idea is that we get a RPC connection to the first active master, then 
we wait.
@@ -169,6 +180,7 @@ public class TestRegionServerReportForDuty {
         try {
           Thread.sleep(SLEEP_INTERVAL);
         } catch (InterruptedException e) {
+          return null;
         }
         LOG.debug("Waiting for master switch over ... ");
       }

Reply via email to