You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by jx...@apache.org on 2014/03/14 04:30:12 UTC

svn commit: r1577418 - in /hbase/branches/0.96/hbase-server/src: main/java/org/apache/hadoop/hbase/master/AssignmentManager.java test/java/org/apache/hadoop/hbase/master/TestAssignmentManagerOnCluster.java

Author: jxiang
Date: Fri Mar 14 03:30:11 2014
New Revision: 1577418

URL: http://svn.apache.org/r1577418
Log:
HBASE-10744 AM#CloseRegion no need to retry on FailedServerException

Modified:
    hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
    hbase/branches/0.96/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestAssignmentManagerOnCluster.java

Modified: hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java?rev=1577418&r1=1577417&r2=1577418&view=diff
==============================================================================
--- hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java (original)
+++ hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java Fri Mar 14 03:30:11 2014
@@ -61,6 +61,7 @@ import org.apache.hadoop.hbase.exception
 import org.apache.hadoop.hbase.executor.EventHandler;
 import org.apache.hadoop.hbase.executor.EventType;
 import org.apache.hadoop.hbase.executor.ExecutorService;
+import org.apache.hadoop.hbase.ipc.RpcClient.FailedServerException;
 import org.apache.hadoop.hbase.ipc.ServerNotRunningYetException;
 import org.apache.hadoop.hbase.master.RegionState.State;
 import org.apache.hadoop.hbase.master.balancer.FavoredNodeAssignmentHelper;
@@ -1692,7 +1693,9 @@ public class AssignmentManager extends Z
           t = ((RemoteException)t).unwrapRemoteException();
         }
         if (t instanceof NotServingRegionException
-            || t instanceof RegionServerStoppedException) {
+            || t instanceof RegionServerStoppedException
+            || t instanceof ServerNotRunningYetException
+            || t instanceof FailedServerException) {
           LOG.debug("Offline " + region.getRegionNameAsString()
             + ", it's not any more on " + server, t);
           if (transitionInZK) {
@@ -2116,7 +2119,7 @@ public class AssignmentManager extends Z
    * if no servers to assign, it returns null).
    */
   private RegionPlan getRegionPlan(final HRegionInfo region,
-      final boolean forceNewPlan)  throws HBaseIOException  {
+      final boolean forceNewPlan)  throws HBaseIOException {
     return getRegionPlan(region, null, forceNewPlan);
   }
 

Modified: hbase/branches/0.96/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestAssignmentManagerOnCluster.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.96/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestAssignmentManagerOnCluster.java?rev=1577418&r1=1577417&r2=1577418&view=diff
==============================================================================
--- hbase/branches/0.96/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestAssignmentManagerOnCluster.java (original)
+++ hbase/branches/0.96/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestAssignmentManagerOnCluster.java Fri Mar 14 03:30:11 2014
@@ -734,23 +734,14 @@ public class TestAssignmentManagerOnClus
       // You can't assign a dead region before SSH
       am.assign(hri, true, true);
       RegionState state = regionStates.getRegionState(hri);
-      assertTrue(state.isFailedClose());
+      assertTrue(state.isOffline());
 
       // You can't unassign a dead region before SSH either
       am.unassign(hri, true);
-      state = regionStates.getRegionState(hri);
-      assertTrue(state.isFailedClose());
+      assertTrue(state.isOffline());
 
-      synchronized (regionStates) {
-        // Enable SSH so that log can be split
-        master.enableSSH(true);
-
-        // We hold regionStates now, so logSplit
-        // won't be known to AM yet.
-        am.unassign(hri, true);
-        state = regionStates.getRegionState(hri);
-        assertTrue(state.isOffline());
-      }
+      // Enable SSH so that log can be split
+      master.enableSSH(true);
 
       // let's check if it's assigned after it's out of transition.
       // no need to assign it manually, SSH should do it