You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2014/03/19 21:03:22 UTC

svn commit: r1579374 - /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/MasterSnapshotVerifier.java

Author: tedyu
Date: Wed Mar 19 20:03:22 2014
New Revision: 1579374

URL: http://svn.apache.org/r1579374
Log:
HBASE-10786 If snapshot verification fails with 'Regions moved', the message should contain the name of region causing the failure


Modified:
    hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/MasterSnapshotVerifier.java

Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/MasterSnapshotVerifier.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/MasterSnapshotVerifier.java?rev=1579374&r1=1579373&r2=1579374&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/MasterSnapshotVerifier.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/MasterSnapshotVerifier.java Wed Mar 19 20:03:22 2014
@@ -156,24 +156,27 @@ public final class MasterSnapshotVerifie
       throw new CorruptedSnapshotException(msg);
     }
 
+    String errorMsg = "";
     if (snapshotRegions.size() != regions.size()) {
-      String msg = "Regions moved during the snapshot '" + 
+      errorMsg = "Regions moved during the snapshot '" + 
                    ClientSnapshotDescriptionUtils.toString(snapshot) + "'. expected=" +
-                   regions.size() + " snapshotted=" + snapshotRegions.size();
-      LOG.error(msg);
-      throw new CorruptedSnapshotException(msg);
+                   regions.size() + " snapshotted=" + snapshotRegions.size() + ".";
+      LOG.error(errorMsg);
     }
 
     for (HRegionInfo region : regions) {
       if (!snapshotRegions.contains(region.getEncodedName())) {
         // could happen due to a move or split race.
-        String msg = "No region directory found for region:" + region;
-        LOG.error(msg);
-        throw new CorruptedSnapshotException(msg, snapshot);
+        String mesg = " No snapshot region directory found for region:" + region;
+        if (errorMsg.isEmpty()) errorMsg = mesg;
+        LOG.error(mesg);
       }
 
       verifyRegion(fs, snapshotDir, region);
     }
+    if (!errorMsg.isEmpty()) {
+      throw new CorruptedSnapshotException(errorMsg);
+    }
   }
 
   /**