This is an automated email from the ASF dual-hosted git repository.

psomogyi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/master by this push:
     new d93102ccf63 HBASE-29361 Snapshot coprocessor hooks called inside 
SnapshotProcedure (#7059)
d93102ccf63 is described below

commit d93102ccf631f11028d466acaa1ea3862c185b44
Author: Peter Somogyi <[email protected]>
AuthorDate: Wed Jun 4 14:56:25 2025 +0200

    HBASE-29361 Snapshot coprocessor hooks called inside SnapshotProcedure 
(#7059)
    
    Signed-off-by: Wellington Chevreuil <[email protected]>
---
 .../hadoop/hbase/master/procedure/SnapshotProcedure.java  | 11 -----------
 .../hadoop/hbase/master/snapshot/SnapshotManager.java     | 15 +++++++++++++++
 2 files changed, 15 insertions(+), 11 deletions(-)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/SnapshotProcedure.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/SnapshotProcedure.java
index 694c3878845..a554f967ab9 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/SnapshotProcedure.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/SnapshotProcedure.java
@@ -33,7 +33,6 @@ import org.apache.hadoop.hbase.client.TableDescriptor;
 import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
 import org.apache.hadoop.hbase.client.TableState;
 import org.apache.hadoop.hbase.errorhandling.ForeignExceptionDispatcher;
-import org.apache.hadoop.hbase.master.MasterCoprocessorHost;
 import org.apache.hadoop.hbase.master.MetricsSnapshot;
 import org.apache.hadoop.hbase.master.assignment.MergeTableRegionsProcedure;
 import org.apache.hadoop.hbase.master.assignment.SplitTableRegionProcedure;
@@ -300,11 +299,6 @@ public class SnapshotProcedure extends 
AbstractStateMachineTableProcedure<Snapsh
 
   private void preSnapshot(MasterProcedureEnv env) throws IOException {
     
env.getMasterServices().getSnapshotManager().prepareWorkingDirectory(snapshot);
-
-    MasterCoprocessorHost cpHost = env.getMasterCoprocessorHost();
-    if (cpHost != null) {
-      cpHost.preSnapshot(ProtobufUtil.createSnapshotDesc(snapshot), htd, 
getUser());
-    }
   }
 
   private void postSnapshot(MasterProcedureEnv env) throws IOException {
@@ -312,11 +306,6 @@ public class SnapshotProcedure extends 
AbstractStateMachineTableProcedure<Snapsh
     if (sm != null) {
       sm.unregisterSnapshotProcedure(snapshot, getProcId());
     }
-
-    MasterCoprocessorHost cpHost = env.getMasterCoprocessorHost();
-    if (cpHost != null) {
-      cpHost.postSnapshot(ProtobufUtil.createSnapshotDesc(snapshot), htd, 
getUser());
-    }
   }
 
   private void verifySnapshot(MasterProcedureEnv env) throws IOException {
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 14c7b4925de..ac9e654fcb3 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
@@ -726,12 +726,27 @@ public class SnapshotManager extends 
MasterProcedureManager implements Stoppable
       .submitProcedure(new MasterProcedureUtil.NonceProcedureRunnable(master, 
nonceGroup, nonce) {
         @Override
         protected void run() throws IOException {
+          TableDescriptor tableDescriptor =
+            
master.getTableDescriptors().get(TableName.valueOf(snapshot.getTable()));
+          MasterCoprocessorHost cpHost = 
getMaster().getMasterCoprocessorHost();
+          User user = RpcServer.getRequestUser().orElse(null);
+          org.apache.hadoop.hbase.client.SnapshotDescription snapshotDesc =
+            ProtobufUtil.createSnapshotDesc(snapshot);
+
+          if (cpHost != null) {
+            cpHost.preSnapshot(snapshotDesc, tableDescriptor, user);
+          }
+
           sanityCheckBeforeSnapshot(snapshot, false);
 
           long procId = submitProcedure(new SnapshotProcedure(
             getMaster().getMasterProcedureExecutor().getEnvironment(), 
snapshot));
 
           getMaster().getSnapshotManager().registerSnapshotProcedure(snapshot, 
procId);
+
+          if (cpHost != null) {
+            cpHost.postSnapshot(snapshotDesc, tableDescriptor, user);
+          }
         }
 
         @Override

Reply via email to