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);