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);
+ }
}
/**