You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2013/04/01 18:32:02 UTC

svn commit: r1463194 - in /hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase: HBaseTestingUtility.java master/TestTableLockManager.java

Author: stack
Date: Mon Apr  1 16:32:02 2013
New Revision: 1463194

URL: http://svn.apache.org/r1463194
Log:
HBASE-8164 TestTableLockManager fails intermittently in trunk builds

Modified:
    hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java
    hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestTableLockManager.java

Modified: hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java?rev=1463194&r1=1463193&r2=1463194&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java (original)
+++ hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java Mon Apr  1 16:32:02 2013
@@ -1943,15 +1943,20 @@ public class HBaseTestingUtility extends
         attempted.clear();
       }
       regCount = regions.size();
-      idx = random.nextInt(regions.size());
-      // if we have just tried this region, there is no need to try again
-      if (attempted.contains(idx)) continue;
-      try {
-        regions.get(idx).checkSplit();
-        return regions.get(idx);
-      } catch (Exception ex) {
-        LOG.warn("Caught exception", ex);
-        attempted.add(idx);
+      // There are chances that before we get the region for the table from an RS the region may
+      // be going for CLOSE.  This may be because online schema change is enabled 
+      if (regCount > 0) {
+        idx = random.nextInt(regCount);
+        // if we have just tried this region, there is no need to try again
+        if (attempted.contains(idx))
+          continue;
+        try {
+          regions.get(idx).checkSplit();
+          return regions.get(idx);
+        } catch (Exception ex) {
+          LOG.warn("Caught exception", ex);
+          attempted.add(idx);
+        }
       }
       attempts++;
     } while (maxAttempts == -1 || attempts < maxAttempts);

Modified: hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestTableLockManager.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestTableLockManager.java?rev=1463194&r1=1463193&r2=1463194&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestTableLockManager.java (original)
+++ hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestTableLockManager.java Mon Apr  1 16:32:02 2013
@@ -355,10 +355,16 @@ public class TestTableLockManager {
       public void chore() {
         try {
           HRegion region = TEST_UTIL.getSplittableRegion(tableName, -1);
-          byte[] regionName = region.getRegionName();
-          admin.flush(regionName);
-          admin.compact(regionName);
-          admin.split(regionName);
+          if (region != null) {
+            byte[] regionName = region.getRegionName();
+            admin.flush(regionName);
+            admin.compact(regionName);
+            admin.split(regionName);
+          } else {
+            LOG.warn("Could not find suitable region for the table.  Possibly the " +
+              "region got closed and the attempts got over before " +
+              "the region could have got reassigned.");
+          }
         } catch (NotServingRegionException nsre) {
           // the region may be in transition
           LOG.warn("Caught exception", nsre);