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