You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2011/03/24 05:32:11 UTC

svn commit: r1084842 - in /hbase/branches/0.90: CHANGES.txt src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java

Author: apurtell
Date: Thu Mar 24 04:32:10 2011
New Revision: 1084842

URL: http://svn.apache.org/viewvc?rev=1084842&view=rev
Log:
HBASE-3697  Admin actions that use MetaReader to iterate regions need to skip offline ones

Modified:
    hbase/branches/0.90/CHANGES.txt
    hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java

Modified: hbase/branches/0.90/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/branches/0.90/CHANGES.txt?rev=1084842&r1=1084841&r2=1084842&view=diff
==============================================================================
--- hbase/branches/0.90/CHANGES.txt (original)
+++ hbase/branches/0.90/CHANGES.txt Thu Mar 24 04:32:10 2011
@@ -48,7 +48,10 @@ Release 0.90.2 - Unreleased
                holding lock on RIT; a big no-no (Ted Yu via Stack)
    HBASE-3575  Update rename table script
    HBASE-3687  Bulk assign on startup should handle a ServerNotRunningException
-   HBASE-3668  CatalogTracker.waitForMeta can wait forever and totally stall a RS
+   HBASE-3668  CatalogTracker.waitForMeta can wait forever and totally stall
+               a RS
+   HBASE-3697  Admin actions that use MetaReader to iterate regions need to
+               skip offline ones
 
   IMPROVEMENTS
    HBASE-3542  MultiGet methods in Thrift

Modified: hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java?rev=1084842&r1=1084841&r2=1084842&view=diff
==============================================================================
--- hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java (original)
+++ hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java Thu Mar 24 04:32:10 2011
@@ -36,6 +36,7 @@ import org.apache.hadoop.hbase.HRegionLo
 import org.apache.hadoop.hbase.HServerAddress;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.MasterNotRunningException;
+import org.apache.hadoop.hbase.NotServingRegionException;
 import org.apache.hadoop.hbase.RegionException;
 import org.apache.hadoop.hbase.RemoteExceptionHandler;
 import org.apache.hadoop.hbase.TableExistsException;
@@ -48,6 +49,7 @@ import org.apache.hadoop.hbase.ipc.HRegi
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.hbase.util.Pair;
 import org.apache.hadoop.ipc.RemoteException;
+import org.apache.hadoop.util.StringUtils;
 
 /**
  * Provides an interface to manage HBase database table metadata + general 
@@ -830,8 +832,16 @@ public class HBaseAdmin implements Abort
           MetaReader.getTableRegionsAndLocations(getCatalogTracker(),
               Bytes.toString(tableNameOrRegionName));
         for (Pair<HRegionInfo, HServerAddress> pair: pairs) {
+          if (pair.getFirst().isOffline()) continue;
           if (pair.getSecond() == null) continue;
-          flush(pair.getSecond(), pair.getFirst());
+          try {
+            flush(pair.getSecond(), pair.getFirst());
+          } catch (NotServingRegionException e) {
+            if (LOG.isDebugEnabled()) {
+              LOG.debug("Trying to flush " + pair.getFirst() + ": " +
+                StringUtils.stringifyException(e));
+            }
+          }
         }
       }
     } finally {
@@ -924,8 +934,17 @@ public class HBaseAdmin implements Abort
           MetaReader.getTableRegionsAndLocations(ct,
               Bytes.toString(tableNameOrRegionName));
         for (Pair<HRegionInfo, HServerAddress> pair: pairs) {
+          if (pair.getFirst().isOffline()) continue;
           if (pair.getSecond() == null) continue;
-          compact(pair.getSecond(), pair.getFirst(), major);
+          try {
+            compact(pair.getSecond(), pair.getFirst(), major);
+          } catch (NotServingRegionException e) {
+            if (LOG.isDebugEnabled()) {
+              LOG.debug("Trying to" + (major ? " major" : "") + " compact " +
+                pair.getFirst() + ": " +
+                StringUtils.stringifyException(e));
+            }
+          }
         }
       }
     } finally {