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 2012/09/12 08:24:42 UTC
svn commit: r1383797 -
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java
Author: stack
Date: Wed Sep 12 06:24:41 2012
New Revision: 1383797
URL: http://svn.apache.org/viewvc?rev=1383797&view=rev
Log:
HBASE-6648 [0.92 UNIT TESTS] TestMasterObserver.testRegionTransitionOperations fails occasionally
Modified:
hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java
Modified: hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java?rev=1383797&r1=1383796&r2=1383797&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java (original)
+++ hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java Wed Sep 12 06:24:41 2012
@@ -31,6 +31,8 @@ import java.util.Map;
import java.util.NavigableMap;
import java.util.concurrent.CountDownLatch;
+import junit.framework.Assert;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
@@ -972,6 +974,8 @@ public class TestMasterObserver {
// move half the open regions from RS 0 to RS 1
HRegionServer rs = cluster.getRegionServer(0);
byte[] destRS = Bytes.toBytes(cluster.getRegionServer(1).getServerName().toString());
+ //Make sure no regions are in transition now
+ waitForRITtoBeZero(master);
List<HRegionInfo> openRegions = ProtobufUtil.getOnlineRegions(rs);
int moveCnt = openRegions.size()/2;
for (int i=0; i<moveCnt; i++) {
@@ -981,24 +985,28 @@ public class TestMasterObserver {
openRegions.get(i).getEncodedNameAsBytes(), destRS));
}
}
-
- // wait for assignments to finish
- transRegions = mgr.getRegionStates().getRegionsInTransition().values();
- for (RegionState state : transRegions) {
- mgr.getRegionStates().waitOnRegionToClearRegionsInTransition(state.getRegion());
- }
-
+ //Make sure no regions are in transition now
+ waitForRITtoBeZero(master);
// now trigger a balance
master.balanceSwitch(true);
boolean balanceRun = master.balance();
assertTrue("Coprocessor should be called on region rebalancing",
cp.wasBalanceCalled());
- table.close();
} finally {
UTIL.deleteTable(TEST_TABLE);
}
}
+ private void waitForRITtoBeZero(HMaster master) throws Exception {
+ // wait for assignments to finish
+ AssignmentManager mgr = master.getAssignmentManager();
+ Collection<RegionState> transRegions =
+ mgr.getRegionStates().getRegionsInTransition().values();
+ for (RegionState state : transRegions) {
+ mgr.getRegionStates().waitOnRegionToClearRegionsInTransition(state.getRegion());
+ }
+ }
+
@org.junit.Rule
public org.apache.hadoop.hbase.ResourceCheckerJUnitRule cu =
new org.apache.hadoop.hbase.ResourceCheckerJUnitRule();