Author: zjushch Date: Mon Apr 8 02:31:17 2013 New Revision: 1465530 URL: http://svn.apache.org/r1465530 Log: HBASE-8287 TestRegionMergeTransactionOnCluster failed in trunk build #4010
Modified: hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/DispatchMergingRegionHandler.java Modified: hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/DispatchMergingRegionHandler.java URL: http://svn.apache.org/viewvc/hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/DispatchMergingRegionHandler.java?rev=1465530&r1=1465529&r2=1465530&view=diff ============================================================================== --- hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/DispatchMergingRegionHandler.java (original) +++ hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/DispatchMergingRegionHandler.java Mon Apr 8 02:31:17 2013 @@ -121,10 +121,14 @@ public class DispatchMergingRegionHandle while (!masterServices.isStopped()) { try { Thread.sleep(20); + // Make sure check RIT first, then get region location, otherwise + // we would make a wrong result if region is online between getting + // region location and checking RIT + boolean isRIT = regionStates.isRegionInTransition(region_b); region_b_location = masterServices.getAssignmentManager() .getRegionStates().getRegionServerOfRegion(region_b); onSameRS = region_a_location.equals(region_b_location); - if (onSameRS || !regionStates.isRegionInTransition(region_b)) { + if (onSameRS || !isRIT) { // Regions are on the same RS, or region_b is not in // RegionInTransition any more break;