diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestServerCrashProcedure.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSCP.java similarity index 86% rename from hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestServerCrashProcedure.java rename to hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSCP.java index 6751eafdb51..b3fbefcb3ab 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestServerCrashProcedure.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSCP.java @@ -21,8 +21,6 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.io.IOException; -import java.util.Arrays; -import java.util.Collection; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseClassTestRule; @@ -37,7 +35,6 @@ import org.apache.hadoop.hbase.master.HMaster; import org.apache.hadoop.hbase.master.assignment.AssignmentTestingUtil; import org.apache.hadoop.hbase.procedure2.Procedure; import org.apache.hadoop.hbase.procedure2.ProcedureExecutor; -import org.apache.hadoop.hbase.procedure2.ProcedureMetrics; import org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility; import org.apache.hadoop.hbase.testclassification.LargeTests; import org.apache.hadoop.hbase.testclassification.MasterTests; @@ -46,40 +43,27 @@ import org.junit.Before; import org.junit.ClassRule; import org.junit.Test; import org.junit.experimental.categories.Category; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.junit.runners.Parameterized.Parameter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -@RunWith(Parameterized.class) @Category({MasterTests.class, LargeTests.class}) -public class TestServerCrashProcedure { +public class TestSCP { @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestServerCrashProcedure.class); + public static final HBaseClassTestRule CLASS_RULE = HBaseClassTestRule.forClass(TestSCP.class); - private static final Logger LOG = LoggerFactory.getLogger(TestServerCrashProcedure.class); + private static final Logger LOG = LoggerFactory.getLogger(TestSCP.class); protected HBaseTestingUtility util; - @Parameter - public boolean splitWALCoordinatedByZK; - - private ProcedureMetrics serverCrashProcMetrics; - private long serverCrashSubmittedCount = 0; - private long serverCrashFailedCount = 0; - - private void setupConf(Configuration conf) { + protected void setupConf(Configuration conf) { conf.setInt(MasterProcedureConstants.MASTER_PROCEDURE_THREADS, 1); conf.set("hbase.balancer.tablesOnMaster", "none"); conf.setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 3); conf.setInt(HConstants.HBASE_CLIENT_SERVERSIDE_RETRIES_MULTIPLIER, 3); conf.setBoolean("hbase.split.writer.creation.bounded", true); conf.setInt("hbase.regionserver.hlog.splitlog.writer.threads", 8); - LOG.info("WAL splitting coordinated by zk? {}", splitWALCoordinatedByZK); - conf.setBoolean(HConstants.HBASE_SPLIT_WAL_COORDINATED_BY_ZK, splitWALCoordinatedByZK); + conf.setBoolean(HConstants.HBASE_SPLIT_WAL_COORDINATED_BY_ZK, true); } @Before @@ -89,8 +73,6 @@ public class TestServerCrashProcedure { startMiniCluster(); ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate( this.util.getHBaseCluster().getMaster().getMasterProcedureExecutor(), false); - serverCrashProcMetrics = this.util.getHBaseCluster().getMaster().getMasterMetrics() - .getServerCrashProcMetrics(); } protected void startMiniCluster() throws Exception { @@ -178,16 +160,13 @@ public class TestServerCrashProcedure { assertReplicaDistributed(t); assertEquals(count, util.countRows(t)); assertEquals(checksum, util.checksumRows(t)); - } catch (Throwable throwable) { - LOG.error("Test failed!", throwable); - throw throwable; } } @Test public void testConcurrentSCPForSameServer() throws Exception { final TableName tableName = - TableName.valueOf("testConcurrentSCPForSameServer-" + splitWALCoordinatedByZK); + TableName.valueOf("testConcurrentSCPForSameServer"); try (Table t = createTable(tableName)) { // Load the table with a bit of data so some logs to split and some edits in each region. this.util.loadTable(t, HBaseTestingUtility.COLUMNS[0]); @@ -231,14 +210,4 @@ public class TestServerCrashProcedure { HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE); return t; } - - private void collectMasterMetrics() { - serverCrashSubmittedCount = serverCrashProcMetrics.getSubmittedCounter().getCount(); - serverCrashFailedCount = serverCrashProcMetrics.getFailedCounter().getCount(); - } - - @Parameterized.Parameters - public static Collection coordinatedByZK() { - return Arrays.asList(false, true); - } } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestServerCrashProcedureWithReplicas.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSCPWithReplicas.java similarity index 92% rename from hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestServerCrashProcedureWithReplicas.java rename to hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSCPWithReplicas.java index 08446b47202..522e820151d 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestServerCrashProcedureWithReplicas.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSCPWithReplicas.java @@ -32,13 +32,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Category({ MasterTests.class, LargeTests.class }) -public class TestServerCrashProcedureWithReplicas extends TestServerCrashProcedure { +public class TestSCPWithReplicas extends TestSCP { @ClassRule public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestServerCrashProcedureWithReplicas.class); - private static final Logger LOG = - LoggerFactory.getLogger(TestServerCrashProcedureWithReplicas.class); + HBaseClassTestRule.forClass(TestSCPWithReplicas.class); + private static final Logger LOG = LoggerFactory.getLogger(TestSCPWithReplicas.class); @Override protected void startMiniCluster() throws Exception { @@ -55,6 +54,7 @@ public class TestServerCrashProcedureWithReplicas extends TestServerCrashProcedu return t; } + @Override protected void assertReplicaDistributed(final Table t) { // Assert all data came back. List regionInfos = new ArrayList<>(); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSCPWithReplicasWithoutZKCoordinated.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSCPWithReplicasWithoutZKCoordinated.java new file mode 100644 index 00000000000..ead65729e07 --- /dev/null +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSCPWithReplicasWithoutZKCoordinated.java @@ -0,0 +1,40 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.hadoop.hbase.master.procedure; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hbase.HBaseClassTestRule; +import org.apache.hadoop.hbase.HConstants; +import org.apache.hadoop.hbase.testclassification.LargeTests; +import org.apache.hadoop.hbase.testclassification.MasterTests; +import org.junit.ClassRule; +import org.junit.experimental.categories.Category; + +@Category({ MasterTests.class, LargeTests.class }) +public class TestSCPWithReplicasWithoutZKCoordinated extends TestSCPWithReplicas { + + @ClassRule + public static final HBaseClassTestRule CLASS_RULE = + HBaseClassTestRule.forClass(TestSCPWithReplicasWithoutZKCoordinated.class); + + @Override + protected void setupConf(Configuration conf) { + super.setupConf(conf); + conf.setBoolean(HConstants.HBASE_SPLIT_WAL_COORDINATED_BY_ZK, false); + } +} diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSCPWithoutZKCoordinated.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSCPWithoutZKCoordinated.java new file mode 100644 index 00000000000..059ece2e31a --- /dev/null +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestSCPWithoutZKCoordinated.java @@ -0,0 +1,40 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.hadoop.hbase.master.procedure; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hbase.HBaseClassTestRule; +import org.apache.hadoop.hbase.HConstants; +import org.apache.hadoop.hbase.testclassification.LargeTests; +import org.apache.hadoop.hbase.testclassification.MasterTests; +import org.junit.ClassRule; +import org.junit.experimental.categories.Category; + +@Category({MasterTests.class, LargeTests.class}) +public class TestSCPWithoutZKCoordinated extends TestSCP { + + @ClassRule + public static final HBaseClassTestRule CLASS_RULE = + HBaseClassTestRule.forClass(TestSCPWithoutZKCoordinated.class); + + @Override + protected void setupConf(Configuration conf) { + super.setupConf(conf); + conf.setBoolean(HConstants.HBASE_SPLIT_WAL_COORDINATED_BY_ZK, false); + } +}