This is an automated email from the ASF dual-hosted git repository.
zhangduo pushed a commit to branch branch-3
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-3 by this push:
new 1d098bc3f8c HBASE-27984 NPE in
MigrateReplicationQueueFromZkToTableProcedure recovery (#5329)
1d098bc3f8c is described below
commit 1d098bc3f8c449df6f519dbea6cb48c5de5f7af4
Author: Duo Zhang
AuthorDate: Sat Jul 22 21:24:49 2023 +0800
HBASE-27984 NPE in MigrateReplicationQueueFromZkToTableProcedure recovery
(#5329)
Signed-off-by: GeorryHuang
(cherry picked from commit 73ea43f5d7ffc42e8b8a3e8396653dc7c7d73bf0)
---
.../src/main/java/org/apache/hadoop/hbase/master/HMaster.java| 9 +
.../main/java/org/apache/hadoop/hbase/master/MasterServices.java | 7 +++
.../apache/hadoop/hbase/master/replication/AddPeerProcedure.java | 6 +++---
.../MigrateReplicationQueueFromZkToTableProcedure.java | 8
.../hadoop/hbase/master/replication/ReplicationPeerManager.java | 8
.../hadoop/hbase/replication/master/ReplicationLogCleaner.java | 8 +---
.../org/apache/hadoop/hbase/master/MockNoopMasterServices.java | 6 ++
.../org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.java | 3 ++-
.../TestMigrateReplicationQueueFromZkToTableProcedure.java | 4 ++--
.../hbase/replication/master/TestReplicationLogCleaner.java | 4 ++--
10 files changed, 40 insertions(+), 23 deletions(-)
diff --git
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
index 8cb40cb5880..1c77e8dfaaf 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
@@ -229,6 +229,7 @@ import
org.apache.hadoop.hbase.replication.SyncReplicationState;
import
org.apache.hadoop.hbase.replication.ZKReplicationQueueStorageForMigration;
import org.apache.hadoop.hbase.replication.master.ReplicationHFileCleaner;
import org.apache.hadoop.hbase.replication.master.ReplicationLogCleaner;
+import org.apache.hadoop.hbase.replication.master.ReplicationLogCleanerBarrier;
import
org.apache.hadoop.hbase.replication.master.ReplicationSinkTrackerTableCreator;
import org.apache.hadoop.hbase.replication.regionserver.ReplicationSyncUp;
import
org.apache.hadoop.hbase.replication.regionserver.ReplicationSyncUp.ReplicationSyncUpToolInfo;
@@ -364,6 +365,9 @@ public class HMaster extends
HBaseServerBase implements Maste
private RSGroupInfoManager rsGroupInfoManager;
+ private final ReplicationLogCleanerBarrier replicationLogCleanerBarrier =
+new ReplicationLogCleanerBarrier();
+
// manager of replication
private ReplicationPeerManager replicationPeerManager;
@@ -4106,6 +4110,11 @@ public class HMaster extends
HBaseServerBase implements Maste
return replicationPeerManager;
}
+ @Override
+ public ReplicationLogCleanerBarrier getReplicationLogCleanerBarrier() {
+return replicationLogCleanerBarrier;
+ }
+
public HashMap>>
getReplicationLoad(ServerName[] serverNames) {
List peerList =
this.getReplicationPeerManager().listPeers(null);
diff --git
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterServices.java
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterServices.java
index 1958e64767e..d450fbb45ac 100644
---
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterServices.java
+++
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterServices.java
@@ -51,6 +51,7 @@ import
org.apache.hadoop.hbase.replication.ReplicationException;
import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;
import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;
import org.apache.hadoop.hbase.replication.SyncReplicationState;
+import org.apache.hadoop.hbase.replication.master.ReplicationLogCleanerBarrier;
import org.apache.hadoop.hbase.rsgroup.RSGroupInfoManager;
import org.apache.hadoop.hbase.security.access.AccessChecker;
import org.apache.hadoop.hbase.security.access.ZKPermissionWatcher;
@@ -361,6 +362,12 @@ public interface MasterServices extends Server {
*/
ReplicationPeerManager getReplicationPeerManager();
+ /**
+ * Returns the {@link ReplicationLogCleanerBarrier}. It will be used at
multiple places so we put
+ * it in MasterServices directly.
+ */
+ ReplicationLogCleanerBarrier getReplicationLogCleanerBarrier();
+
/**
* Returns the {@link SyncReplicationReplayWALManager}.
*/
diff --git
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/AddPeerProcedure.java
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/AddPeerProcedure.java
index 1d02fab5f19..c469896d3e7 100644
---