From 6a91d47fed557aa7ca54e377991bdeaf68c416df Mon Sep 17 00:00:00 2001 From: Sanjeet Nishad Date: Thu, 26 Sep 2019 12:06:44 +0530 Subject: [PATCH] HBASE-22942 move Snapshot verification to procedure --- .../hbase/master/procedure/RestoreSnapshotProcedure.java | 7 +++++++ .../hadoop/hbase/master/snapshot/SnapshotManager.java | 3 --- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.java index 244711de20a6..e9283765c1c6 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.java @@ -50,6 +50,7 @@ import org.apache.hadoop.hbase.snapshot.RestoreSnapshotHelper; import org.apache.hadoop.hbase.snapshot.SnapshotDescriptionUtils; import org.apache.hadoop.hbase.snapshot.SnapshotManifest; +import org.apache.hadoop.hbase.snapshot.SnapshotReferenceUtil; import org.apache.hadoop.hbase.util.Pair; import org.apache.yetus.audience.InterfaceAudience; import org.slf4j.Logger; @@ -351,6 +352,12 @@ private void prepareRestore(final MasterProcedureEnv env) throws IOException { mfs.getFileSystem(), SnapshotDescriptionUtils.getCompletedSnapshotDir(snapshot, mfs.getRootDir()), snapshot); + + // Verify snapshot validity + SnapshotReferenceUtil + .verifySnapshot(env.getMasterServices().getConfiguration(), mfs.getFileSystem(), + manifest); + int snapshotRegionCount = manifest.getRegionManifestsMap().size(); int tableRegionCount = ProcedureSyncWait.getMasterQuotaManager(env).getRegionCountOfTable(tableName); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.java index 8074a2cf9e77..cef9b35ca1b3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.java @@ -835,9 +835,6 @@ public long restoreOrCloneSnapshot(final SnapshotDescription reqSnapshot, final // stop tracking "abandoned" handlers cleanupSentinels(); - // Verify snapshot validity - SnapshotReferenceUtil.verifySnapshot(master.getConfiguration(), fs, manifest); - // Execute the restore/clone operation long procId; if (MetaTableAccessor.tableExists(master.getConnection(), tableName)) {