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;