You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zh...@apache.org on 2022/04/13 03:22:58 UTC

[hbase] branch branch-2.4 updated: HBASE-26941 LocalHBaseCluster.waitOnRegionServer should quit while thread is interrupted (#4333)

This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch branch-2.4
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-2.4 by this push:
     new c10e4bd330 HBASE-26941 LocalHBaseCluster.waitOnRegionServer should quit while thread is interrupted (#4333)
c10e4bd330 is described below

commit c10e4bd330ebc1feb1d8614b66107edcab445dfe
Author: Duo Zhang <zh...@apache.org>
AuthorDate: Wed Apr 13 10:49:40 2022 +0800

    HBASE-26941 LocalHBaseCluster.waitOnRegionServer should quit while thread is interrupted (#4333)
    
    Signed-off-by: Xin Sun <dd...@gmail.com>
    (cherry picked from commit 8247b7c722f95f94afd5cb9d9b80c9ce5f61a7de)
---
 .../org/apache/hadoop/hbase/LocalHBaseCluster.java | 25 ++++++++--------------
 .../org/apache/hadoop/hbase/MiniHBaseCluster.java  | 17 +++++++++++----
 .../hbase/master/TestMasterMetricsWrapper.java     |  2 +-
 3 files changed, 23 insertions(+), 21 deletions(-)

diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/LocalHBaseCluster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/LocalHBaseCluster.java
index ca7e82a607..6ddae5fc4c 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/LocalHBaseCluster.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/LocalHBaseCluster.java
@@ -300,7 +300,7 @@ public class LocalHBaseCluster {
    * Wait for the specified region server to stop. Removes this thread from list of running threads.
    * @return Name of region server that just went down.
    */
-  public String waitOnRegionServer(int serverNumber) {
+  public String waitOnRegionServer(int serverNumber) throws InterruptedException {
     JVMClusterUtil.RegionServerThread regionServerThread = this.regionThreads.get(serverNumber);
     return waitOnRegionServer(regionServerThread);
   }
@@ -309,14 +309,11 @@ public class LocalHBaseCluster {
    * Wait for the specified region server to stop. Removes this thread from list of running threads.
    * @return Name of region server that just went down.
    */
-  public String waitOnRegionServer(JVMClusterUtil.RegionServerThread rst) {
+  public String waitOnRegionServer(JVMClusterUtil.RegionServerThread rst)
+    throws InterruptedException {
     while (rst.isAlive()) {
-      try {
-        LOG.info("Waiting on " + rst.getRegionServer().toString());
-        rst.join();
-      } catch (InterruptedException e) {
-        e.printStackTrace();
-      }
+      LOG.info("Waiting on " + rst.getRegionServer().toString());
+      rst.join();
     }
     regionThreads.remove(rst);
     return rst.getName();
@@ -372,7 +369,7 @@ public class LocalHBaseCluster {
    * Wait for the specified master to stop. Removes this thread from list of running threads.
    * @return Name of master that just went down.
    */
-  public String waitOnMaster(int serverNumber) {
+  public String waitOnMaster(int serverNumber) throws InterruptedException {
     JVMClusterUtil.MasterThread masterThread = this.masterThreads.get(serverNumber);
     return waitOnMaster(masterThread);
   }
@@ -381,14 +378,10 @@ public class LocalHBaseCluster {
    * Wait for the specified master to stop. Removes this thread from list of running threads.
    * @return Name of master that just went down.
    */
-  public String waitOnMaster(JVMClusterUtil.MasterThread masterThread) {
+  public String waitOnMaster(JVMClusterUtil.MasterThread masterThread) throws InterruptedException {
     while (masterThread.isAlive()) {
-      try {
-        LOG.info("Waiting on " + masterThread.getMaster().getServerName().toString());
-        masterThread.join();
-      } catch (InterruptedException e) {
-        e.printStackTrace();
-      }
+      LOG.info("Waiting on " + masterThread.getMaster().getServerName().toString());
+      masterThread.join();
     }
     masterThreads.remove(masterThread);
     return masterThread.getName();
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 4942dc868f..b182baab7d 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
@@ -19,6 +19,7 @@
 package org.apache.hadoop.hbase;
 
 import java.io.IOException;
+import java.io.InterruptedIOException;
 import java.security.PrivilegedAction;
 import java.util.ArrayList;
 import java.util.HashSet;
@@ -308,7 +309,11 @@ public class MiniHBaseCluster extends HBaseCluster {
   @Override
   public void waitForRegionServerToStop(ServerName serverName, long timeout) throws IOException {
     //ignore timeout for now
-    waitOnRegionServer(getRegionServerIndex(serverName));
+    try {
+      waitOnRegionServer(getRegionServerIndex(serverName));
+    } catch (InterruptedException e) {
+      throw (InterruptedIOException) new InterruptedIOException().initCause(e);
+    }
   }
 
   @Override
@@ -404,7 +409,11 @@ public class MiniHBaseCluster extends HBaseCluster {
   @Override
   public void waitForMasterToStop(ServerName serverName, long timeout) throws IOException {
     //ignore timeout for now
-    waitOnMaster(getMasterIndex(serverName));
+    try {
+      waitOnMaster(getMasterIndex(serverName));
+    } catch (InterruptedException e) {
+      throw (InterruptedIOException) new InterruptedIOException().initCause(e);
+    }
   }
 
   /**
@@ -535,7 +544,7 @@ public class MiniHBaseCluster extends HBaseCluster {
    * @param serverNumber
    * @return Name of region server that just went down.
    */
-  public String waitOnRegionServer(final int serverNumber) {
+  public String waitOnRegionServer(final int serverNumber) throws InterruptedException {
     return this.hbaseCluster.waitOnRegionServer(serverNumber);
   }
 
@@ -646,7 +655,7 @@ public class MiniHBaseCluster extends HBaseCluster {
    * @param serverNumber
    * @return Name of master that just went down.
    */
-  public String waitOnMaster(final int serverNumber) {
+  public String waitOnMaster(final int serverNumber) throws InterruptedException {
     return this.hbaseCluster.waitOnMaster(serverNumber);
   }
 
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetricsWrapper.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetricsWrapper.java
index 920fd2d59c..871d0f1546 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetricsWrapper.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetricsWrapper.java
@@ -59,7 +59,7 @@ public class TestMasterMetricsWrapper {
   }
 
   @Test
-  public void testInfo() {
+  public void testInfo() throws InterruptedException {
     HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
     MetricsMasterWrapperImpl info = new MetricsMasterWrapperImpl(master);
     assertEquals(