From 05defbdce39750ffc8b0e43456cc0f8192fe63f7 Mon Sep 17 00:00:00 2001 From: larsh Date: Thu, 4 Apr 2013 03:50:57 +0000 Subject: [PATCH] HBASE-8229 Replication code logs like crazy if a target table cannot be found. git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1464278 13f79535-47bb-0310-9956-ffa450edef68 --- .../hbase/replication/regionserver/ReplicationSource.java | 7 +++++++ 1 file changed, 7 insertions(+) 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 e9faaa9825e..cac32ae01fe 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 @@ -52,6 +52,7 @@ import org.apache.hadoop.hbase.Stoppable; import org.apache.hadoop.hbase.client.AdminProtocol; import org.apache.hadoop.hbase.client.HConnection; import org.apache.hadoop.hbase.client.HConnectionManager; +import org.apache.hadoop.hbase.exceptions.TableNotFoundException; import org.apache.hadoop.hbase.protobuf.ProtobufUtil; import org.apache.hadoop.hbase.protobuf.ReplicationProtbufUtil; import org.apache.hadoop.hbase.regionserver.wal.HLog; @@ -722,6 +723,12 @@ public class ReplicationSource extends Thread if (ioe instanceof RemoteException) { ioe = ((RemoteException) ioe).unwrapRemoteException(); LOG.warn("Can't replicate because of an error on the remote cluster: ", ioe); + if (ioe instanceof TableNotFoundException) { + if (sleepForRetries("A table is missing in the peer cluster. " + + "Replication cannot proceed without losing data.", sleepMultiplier)) { + sleepMultiplier++; + } + } } else { if (ioe instanceof SocketTimeoutException) { // This exception means we waited for more than 60s and nothing