You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by li...@apache.org on 2014/04/24 20:18:25 UTC

svn commit: r1589816 - in /hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase: master/TestRegionStateOnMasterFailure.java regionserver/TestHRegionClose.java thrift/TestThriftServer.java

Author: liyin
Date: Thu Apr 24 18:18:25 2014
New Revision: 1589816

URL: http://svn.apache.org/r1589816
Log:
[HBASE-10986] Fix more hanging tests

Author: elliott

Summary:
New hanging tests from the last few test runs.
One was caused by an integer overflow.
I also made TestHRegionClose much faster by changing
to a BeforeClass setup.

Test Plan: ran each of the tests

Reviewers: liyintang, adela

Reviewed By: adela

CC: hbase-eng@

Differential Revision: https://phabricator.fb.com/D1292046

Task ID: 4142789

Modified:
    hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestRegionStateOnMasterFailure.java
    hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionClose.java
    hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServer.java

Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestRegionStateOnMasterFailure.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestRegionStateOnMasterFailure.java?rev=1589816&r1=1589815&r2=1589816&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestRegionStateOnMasterFailure.java (original)
+++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestRegionStateOnMasterFailure.java Thu Apr 24 18:18:25 2014
@@ -82,7 +82,7 @@ public class TestRegionStateOnMasterFail
   private static final int NUM_MASTERS = 2;
   private static final int NUM_RS = 3;
 
-  private static final int TEST_TIMEOUT_MS = 90 * 1000 * 1234567;
+  private static final long TEST_TIMEOUT_MS = 360 * 1000;
 
   private static final Pattern META_AND_ROOT_RE = Pattern.compile(
       (Bytes.toStringBinary(HConstants.META_TABLE_NAME) + "|" +

Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionClose.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionClose.java?rev=1589816&r1=1589815&r2=1589816&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionClose.java (original)
+++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionClose.java Thu Apr 24 18:18:25 2014
@@ -35,39 +35,50 @@ import org.apache.hadoop.hbase.util.Writ
 import org.apache.hadoop.hbase.zookeeper.ZooKeeperWrapper;
 import org.apache.zookeeper.data.Stat;
 import org.junit.After;
+import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
 public class TestHRegionClose {
   private static final Log LOG = LogFactory.getLog(TestHRegionClose.class);
-  protected final static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();
-  protected static byte[][] FAMILIES = { Bytes.toBytes("f1"),
+  private static final HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();
+  private static final byte[][] FAMILIES = { Bytes.toBytes("f1"),
       Bytes.toBytes("f2"), Bytes.toBytes("f3"), Bytes.toBytes("f4") };
-  protected HRegionServer server;
-  protected ZooKeeperWrapper zkWrapper;
-  protected HRegionInfo regionInfo;
-  protected String regionZNode;
+  private static final String TABLE_NAME = TestHRegionClose.class.getName();
+  private static int nextRegionIdx = 0;
 
-  @Before
-  public void setUp() throws Exception {
-    TEST_UTIL.startMiniCluster(3);
+  private HRegionServer server;
+  private ZooKeeperWrapper zkWrapper;
+  private HRegionInfo regionInfo;
+  private String regionZNode;
+
+  @BeforeClass
+  public static void setUpBeforeClass() throws Exception {
+    TEST_UTIL.startMiniCluster(1);
 
     // Build some data.
-    byte[] tableName = Bytes.toBytes(getClass().getSimpleName());
+    byte[] tableName = Bytes.toBytes(TABLE_NAME);
     TEST_UTIL.createTable(tableName, FAMILIES, 1, Bytes.toBytes("bbb"),
         Bytes.toBytes("yyy"), 25);
     HTable table = new HTable(TEST_UTIL.getConfiguration(), tableName);
-    for (int i = 0; i < FAMILIES.length; i++) {
-      byte[] columnFamily = FAMILIES[i];
+    for (byte[] columnFamily : FAMILIES) {
       TEST_UTIL.loadTable(table, columnFamily);
     }
+  }
 
+  @Before
+  public void setUp() throws Exception {
     // Pick a regionserver.
     server = TEST_UTIL.getHBaseCluster().getRegionServer(0);
 
     HRegion[] region = server.getOnlineRegionsAsArray();
-    regionInfo = region[0].getRegionInfo();
+    regionInfo = null;
+
+    // We need to make sure that we don't get meta or root
+    while (regionInfo == null || !regionInfo.getTableDesc().getNameAsString().equals(TABLE_NAME)) {
+      regionInfo = region[nextRegionIdx++].getRegionInfo();
+    }
 
     // Some initialization relevant to zk.
     zkWrapper = server.getZooKeeperWrapper();
@@ -75,13 +86,17 @@ public class TestHRegionClose {
         zkWrapper.getRegionInTransitionZNode(), regionInfo.getEncodedName());
   }
 
+  @AfterClass
+  public static void tearDownAfterClass() throws Exception {
+    TEST_UTIL.shutdownMiniCluster();
+  }
+
   @After
   public void tearDown() throws Exception {
     server = null;
     zkWrapper = null;
     regionInfo = null;
     regionZNode = null;
-    TEST_UTIL.shutdownMiniCluster();
   }
 
   protected void tryCloseRegion() throws Exception {
@@ -96,12 +111,12 @@ public class TestHRegionClose {
     assertEquals(HBaseEventType.RS2ZK_REGION_CLOSED, rsData.getHbEvent());
   }
 
-  @Test
+  @Test(timeout = 180000)
   public void singleClose() throws Exception {
     tryCloseRegion();
   }
 
-  @Test
+  @Test(timeout = 180000)
   public void doubleClose() throws Exception {
     tryCloseRegion();
     LOG.info("Trying to close the region again, to check that the RegionServer "
@@ -109,7 +124,7 @@ public class TestHRegionClose {
     tryCloseRegion();
   }
 
-  @Test
+  @Test(timeout = 180000)
   public void testMemstoreCleanup() throws Exception {
     HRegion region = server.getOnlineRegionsAsArray()[0];
 

Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServer.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServer.java?rev=1589816&r1=1589815&r2=1589816&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServer.java (original)
+++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServer.java Thu Apr 24 18:18:25 2014
@@ -97,33 +97,13 @@ public class TestThriftServer {
   }
 
   /**
-   * Runs all of the tests under a single JUnit test method.  We
-   * consolidate all testing to one method because HBaseClusterTestCase
-   * is prone to OutOfMemoryExceptions when there are three or more
-   * JUnit test methods.
-   *
-   * @throws Exception
-   */
-  public void testAll() throws Exception {
-    // Run all tests
-    doTestTableCreateDrop();
-    doTestThriftMetrics();
-    doTestTableMutations();
-    doTestTableTimestampsAndColumns();
-    doTestTableScanners();
-    doTestGetTableRegions();
-    doTestFilterRegistration();
-    doTestGetRegionInfo();
-  }
-
-  /**
    * Tests for creating, enabling, disabling, and deleting tables.  Also
    * tests that creating a table with an invalid column name yields an
    * IllegalArgument exception.
    *
    * @throws Exception
    */
-  @Test
+  @Test(timeout = 180000)
   public void doTestTableCreateDrop() throws Exception {
     ThriftServerRunner.HBaseHandler handler =
       new ThriftServerRunner.HBaseHandler(UTIL.getConfiguration());
@@ -153,7 +133,7 @@ public class TestThriftServer {
   /**
    * Tests if the metrics for thrift handler work correctly
    */
-  @Test
+  @Test(timeout = 180000)
   public void doTestThriftMetrics() throws Exception {
     Configuration conf = UTIL.getConfiguration();
     ThriftMetrics metrics = getMetrics(conf);
@@ -249,7 +229,7 @@ public class TestThriftServer {
    *
    * @throws Exception
    */
-  @Test
+  @Test(timeout = 180000)
   public void doTestTableMutations() throws Exception {
     ThriftServerRunner.HBaseHandler handler =
       new ThriftServerRunner.HBaseHandler(UTIL.getConfiguration());
@@ -368,7 +348,7 @@ public class TestThriftServer {
    * @throws Exception
    */
   @SuppressWarnings("deprecation")
-  @Test
+  @Test(timeout = 180000)
   public void doTestTableTimestampsAndColumns() throws Exception {
     // Setup
     ThriftServerRunner.HBaseHandler handler =
@@ -452,7 +432,7 @@ public class TestThriftServer {
    *
    * @throws Exception
    */
-  @Test
+  @Test(timeout = 180000)
   public void doTestTableScanners() throws Exception {
     // Setup
     ThriftServerRunner.HBaseHandler handler =
@@ -536,7 +516,7 @@ public class TestThriftServer {
    *
    * @throws Exception
    */
-  @Test
+  @Test(timeout = 180000)
   public void doTestGetTableRegions() throws Exception {
     ThriftServerRunner.HBaseHandler handler =
       new ThriftServerRunner.HBaseHandler(UTIL.getConfiguration());
@@ -564,7 +544,7 @@ public class TestThriftServer {
             "but found " + regionCount, regionCount, 0);
   }
 
-  @Test
+  @Test(timeout = 180000)
   public void doTestFilterRegistration() throws Exception {
     Configuration conf = UTIL.getConfiguration();
 
@@ -577,7 +557,7 @@ public class TestThriftServer {
     assertEquals("filterclass", registeredFilters.get("MyFilter"));
   }
 
-  @Test
+  @Test(timeout = 180000)
   public void doTestGetRegionInfo() throws Exception {
     ThriftServerRunner.HBaseHandler handler =
       new ThriftServerRunner.HBaseHandler(UTIL.getConfiguration());