Revert "HBASE-26941 LocalHBaseCluster.waitOnRegionServer should quit while thread is interrupted (#4333)"

This reverts commit 8247b7c722.
This commit is contained in:
Duo Zhang 2022-04-13 11:54:50 +08:00
parent 8247b7c722
commit b7ffb56927
4 changed files with 28 additions and 36 deletions

View File

@ -300,7 +300,7 @@ public class LocalHBaseCluster {
* Wait for the specified region server to stop. Removes this thread from list of running threads. * 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. * @return Name of region server that just went down.
*/ */
public String waitOnRegionServer(int serverNumber) throws InterruptedException { public String waitOnRegionServer(int serverNumber) {
JVMClusterUtil.RegionServerThread regionServerThread = this.regionThreads.get(serverNumber); JVMClusterUtil.RegionServerThread regionServerThread = this.regionThreads.get(serverNumber);
return waitOnRegionServer(regionServerThread); return waitOnRegionServer(regionServerThread);
} }
@ -309,11 +309,15 @@ public class LocalHBaseCluster {
* Wait for the specified region server to stop. Removes this thread from list of running threads. * 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. * @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()) { while (rst.isAlive()) {
LOG.info("Waiting on " + rst.getRegionServer().toString()); try {
rst.join(); LOG.info("Waiting on " + rst.getRegionServer().toString());
rst.join();
} catch (InterruptedException e) {
LOG.error("Interrupted while waiting for {} to finish. Retrying join", rst.getName(), e);
Thread.currentThread().interrupt();
}
} }
regionThreads.remove(rst); regionThreads.remove(rst);
return rst.getName(); return rst.getName();
@ -369,7 +373,7 @@ public class LocalHBaseCluster {
* Wait for the specified master to stop. Removes this thread from list of running threads. * Wait for the specified master to stop. Removes this thread from list of running threads.
* @return Name of master that just went down. * @return Name of master that just went down.
*/ */
public String waitOnMaster(int serverNumber) throws InterruptedException { public String waitOnMaster(int serverNumber) {
JVMClusterUtil.MasterThread masterThread = this.masterThreads.get(serverNumber); JVMClusterUtil.MasterThread masterThread = this.masterThreads.get(serverNumber);
return waitOnMaster(masterThread); return waitOnMaster(masterThread);
} }
@ -378,10 +382,16 @@ public class LocalHBaseCluster {
* Wait for the specified master to stop. Removes this thread from list of running threads. * Wait for the specified master to stop. Removes this thread from list of running threads.
* @return Name of master that just went down. * @return Name of master that just went down.
*/ */
public String waitOnMaster(JVMClusterUtil.MasterThread masterThread) throws InterruptedException { public String waitOnMaster(JVMClusterUtil.MasterThread masterThread) {
while (masterThread.isAlive()) { while (masterThread.isAlive()) {
LOG.info("Waiting on " + masterThread.getMaster().getServerName().toString()); try {
masterThread.join(); LOG.info("Waiting on " + masterThread.getMaster().getServerName().toString());
masterThread.join();
} catch (InterruptedException e) {
LOG.error("Interrupted while waiting for {} to finish. Retrying join",
masterThread.getName(), e);
Thread.currentThread().interrupt();
}
} }
masterThreads.remove(masterThread); masterThreads.remove(masterThread);
return masterThread.getName(); return masterThread.getName();

View File

@ -19,7 +19,6 @@
package org.apache.hadoop.hbase; package org.apache.hadoop.hbase;
import java.io.IOException; import java.io.IOException;
import java.io.InterruptedIOException;
import java.security.PrivilegedAction; import java.security.PrivilegedAction;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
@ -298,11 +297,7 @@ public class SingleProcessHBaseCluster extends HBaseClusterInterface {
@Override @Override
public void waitForRegionServerToStop(ServerName serverName, long timeout) throws IOException { public void waitForRegionServerToStop(ServerName serverName, long timeout) throws IOException {
// ignore timeout for now // ignore timeout for now
try { waitOnRegionServer(getRegionServerIndex(serverName));
waitOnRegionServer(getRegionServerIndex(serverName));
} catch (InterruptedException e) {
throw (InterruptedIOException) new InterruptedIOException().initCause(e);
}
} }
@Override @Override
@ -398,11 +393,7 @@ public class SingleProcessHBaseCluster extends HBaseClusterInterface {
@Override @Override
public void waitForMasterToStop(ServerName serverName, long timeout) throws IOException { public void waitForMasterToStop(ServerName serverName, long timeout) throws IOException {
// ignore timeout for now // ignore timeout for now
try { waitOnMaster(getMasterIndex(serverName));
waitOnMaster(getMasterIndex(serverName));
} catch (InterruptedException e) {
throw (InterruptedIOException) new InterruptedIOException().initCause(e);
}
} }
/** /**
@ -518,7 +509,7 @@ public class SingleProcessHBaseCluster extends HBaseClusterInterface {
* Wait for the specified region server to stop. Removes this thread from list of running threads. * 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. * @return Name of region server that just went down.
*/ */
public String waitOnRegionServer(final int serverNumber) throws InterruptedException { public String waitOnRegionServer(final int serverNumber) {
return this.hbaseCluster.waitOnRegionServer(serverNumber); return this.hbaseCluster.waitOnRegionServer(serverNumber);
} }
@ -610,7 +601,7 @@ public class SingleProcessHBaseCluster extends HBaseClusterInterface {
* Wait for the specified master to stop. Removes this thread from list of running threads. * Wait for the specified master to stop. Removes this thread from list of running threads.
* @return Name of master that just went down. * @return Name of master that just went down.
*/ */
public String waitOnMaster(final int serverNumber) throws InterruptedException { public String waitOnMaster(final int serverNumber) {
return this.hbaseCluster.waitOnMaster(serverNumber); return this.hbaseCluster.waitOnMaster(serverNumber);
} }

View File

@ -70,7 +70,7 @@ public class TestMasterMetricsWrapper {
} }
@Test @Test
public void testInfo() throws InterruptedException { public void testInfo() {
HMaster master = TEST_UTIL.getHBaseCluster().getMaster(); HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
MetricsMasterWrapperImpl info = new MetricsMasterWrapperImpl(master); MetricsMasterWrapperImpl info = new MetricsMasterWrapperImpl(master);
assertEquals( assertEquals(

View File

@ -19,7 +19,6 @@
package org.apache.hadoop.hbase; package org.apache.hadoop.hbase;
import java.io.IOException; import java.io.IOException;
import java.io.InterruptedIOException;
import java.security.PrivilegedAction; import java.security.PrivilegedAction;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
@ -311,11 +310,7 @@ public class MiniHBaseCluster extends HBaseCluster {
@Override @Override
public void waitForRegionServerToStop(ServerName serverName, long timeout) throws IOException { public void waitForRegionServerToStop(ServerName serverName, long timeout) throws IOException {
//ignore timeout for now //ignore timeout for now
try { waitOnRegionServer(getRegionServerIndex(serverName));
waitOnRegionServer(getRegionServerIndex(serverName));
} catch (InterruptedException e) {
throw (InterruptedIOException) new InterruptedIOException().initCause(e);
}
} }
@Override @Override
@ -411,11 +406,7 @@ public class MiniHBaseCluster extends HBaseCluster {
@Override @Override
public void waitForMasterToStop(ServerName serverName, long timeout) throws IOException { public void waitForMasterToStop(ServerName serverName, long timeout) throws IOException {
//ignore timeout for now //ignore timeout for now
try { waitOnMaster(getMasterIndex(serverName));
waitOnMaster(getMasterIndex(serverName));
} catch (InterruptedException e) {
throw (InterruptedIOException) new InterruptedIOException().initCause(e);
}
} }
/** /**
@ -544,7 +535,7 @@ public class MiniHBaseCluster extends HBaseCluster {
* @param serverNumber * @param serverNumber
* @return Name of region server that just went down. * @return Name of region server that just went down.
*/ */
public String waitOnRegionServer(final int serverNumber) throws InterruptedException { public String waitOnRegionServer(final int serverNumber) {
return this.hbaseCluster.waitOnRegionServer(serverNumber); return this.hbaseCluster.waitOnRegionServer(serverNumber);
} }
@ -649,7 +640,7 @@ public class MiniHBaseCluster extends HBaseCluster {
* @param serverNumber * @param serverNumber
* @return Name of master that just went down. * @return Name of master that just went down.
*/ */
public String waitOnMaster(final int serverNumber) throws InterruptedException { public String waitOnMaster(final int serverNumber) {
return this.hbaseCluster.waitOnMaster(serverNumber); return this.hbaseCluster.waitOnMaster(serverNumber);
} }