You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ps...@apache.org on 2025/06/05 15:12:51 UTC
(hbase) branch branch-2.6 updated: HBASE-29361 Snapshot coprocessor hooks called inside SnapshotProcedure (#7070)
This is an automated email from the ASF dual-hosted git repository.
psomogyi pushed a commit to branch branch-2.6
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2.6 by this push:
new c791d02432f HBASE-29361 Snapshot coprocessor hooks called inside SnapshotProcedure (#7070)
c791d02432f is described below
commit c791d02432f7481e70ebea8f2e39666b016cb3e8
Author: Peter Somogyi <ps...@apache.org>
AuthorDate: Thu Jun 5 17:12:45 2025 +0200
HBASE-29361 Snapshot coprocessor hooks called inside SnapshotProcedure (#7070)
(cherry picked from commit d93102ccf631f11028d466acaa1ea3862c185b44)
Signed-off-by: Wellington Chevreuil <wc...@apache.org>
---
.../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 11c74054ded..8936fbfc7fa 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
@@ -722,12 +722,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