diff --git a/src/main/java/org/apache/hadoop/hbase/master/snapshot/EnabledTableSnapshotHandler.java b/src/main/java/org/apache/hadoop/hbase/master/snapshot/EnabledTableSnapshotHandler.java index 393b209..3d78285 100644 --- a/src/main/java/org/apache/hadoop/hbase/master/snapshot/EnabledTableSnapshotHandler.java +++ b/src/main/java/org/apache/hadoop/hbase/master/snapshot/EnabledTableSnapshotHandler.java @@ -71,7 +71,9 @@ public class EnabledTableSnapshotHandler extends TakeSnapshotHandler { throws HBaseSnapshotException, IOException { Set regionServers = new HashSet(regions.size()); for (Pair region : regions) { - if (region != null && region.getSecond() != null) { + if (region != null && region.getFirst() != null && region.getSecond() != null) { + HRegionInfo hri = region.getFirst(); + if (hri.isOffline() && (hri.isSplit() || hri.isSplitParent())) continue; regionServers.add(region.getSecond().toString()); } } diff --git a/src/main/java/org/apache/hadoop/hbase/master/snapshot/TakeSnapshotHandler.java b/src/main/java/org/apache/hadoop/hbase/master/snapshot/TakeSnapshotHandler.java index a3d84c2..75ff129 100644 --- a/src/main/java/org/apache/hadoop/hbase/master/snapshot/TakeSnapshotHandler.java +++ b/src/main/java/org/apache/hadoop/hbase/master/snapshot/TakeSnapshotHandler.java @@ -44,7 +44,6 @@ import org.apache.hadoop.hbase.master.metrics.MasterMetrics; import org.apache.hadoop.hbase.monitoring.MonitoredTask; import org.apache.hadoop.hbase.monitoring.TaskMonitor; import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription; -import org.apache.hadoop.hbase.regionserver.HRegionFileSystem; import org.apache.hadoop.hbase.regionserver.HRegion; import org.apache.hadoop.hbase.snapshot.CopyRecoveredEditsTask; import org.apache.hadoop.hbase.snapshot.ReferenceRegionHFilesTask; @@ -157,7 +156,9 @@ public abstract class TakeSnapshotHandler extends EventHandler implements Snapsh // extract each pair to separate lists Set serverNames = new HashSet(); for (Pair p : regionsAndLocations) { - if (p.getSecond() != null) { + if (p != null && p.getFirst() != null && p.getSecond() != null) { + HRegionInfo hri = p.getFirst(); + if (hri.isOffline() && (hri.isSplit() || hri.isSplitParent())) continue; serverNames.add(p.getSecond().toString()); } }