From 460bb47c04cf2ffa71c23b80c5680d8cbb69234b Mon Sep 17 00:00:00 2001 From: Duo Zhang Date: Thu, 15 Sep 2022 15:27:06 +0800 Subject: [PATCH] HBASE-27368 Do not need to throw IllegalStateException when peer is not active in ReplicationSource.initialize (#4779) Signed-off-by: Xin Sun --- .../regionserver/ReplicationSource.java | 24 +++++++------------ 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java index 2373751afbb1..c7dfbd38210c 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java @@ -421,7 +421,7 @@ WALEntryFilter getWalEntryFilter() { return walEntryFilter; } - protected final void uncaughtException(Thread t, Throwable e, ReplicationSourceManager manager, + private void uncaughtException(Thread t, Throwable e, ReplicationSourceManager manager, String peerId) { OOMEChecker.exitIfOOME(e, getClass().getSimpleName()); LOG.error("Unexpected exception in {} currentPath={}", t.getName(), getCurrentPath(), e); @@ -539,15 +539,10 @@ private void initialize() { } if (!this.isSourceActive()) { + // this means the server is shutting down or the source is terminated, just give up + // initializing setSourceStartupStatus(false); - if (Thread.currentThread().isInterrupted()) { - // If source is not running and thread is interrupted this means someone has tried to - // remove this peer. - return; - } - - retryStartup.set(!this.abortOnError); - throw new IllegalStateException("Source should be active."); + return; } sleepMultiplier = 1; @@ -569,15 +564,12 @@ private void initialize() { } if (!this.isSourceActive()) { + // this means the server is shutting down or the source is terminated, just give up + // initializing setSourceStartupStatus(false); - if (Thread.currentThread().isInterrupted()) { - // If source is not running and thread is interrupted this means someone has tried to - // remove this peer. - return; - } - retryStartup.set(!this.abortOnError); - throw new IllegalStateException("Source should be active."); + return; } + LOG.info("{} queueId={} (queues={}) is replicating from cluster={} to cluster={}", logPeerId(), this.replicationQueueInfo.getQueueId(), logQueue.getNumQueues(), clusterId, peerClusterId); initializeWALEntryFilter(peerClusterId);