You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zj...@apache.org on 2013/04/08 04:31:17 UTC

svn commit: r1465530 - /hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/DispatchMergingRegionHandler.java

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;