Author: larsh
Date: Thu Apr 4 03:49:40 2013
New Revision: 1464275
URL: http://svn.apache.org/r1464275
Log:
HBASE-8229 Replication code logs like crazy if a target table cannot be found.
Modified:
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java
Modified:
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java
URL:
http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java?rev=1464275&r1=1464274&r2=1464275&view=diff
==============================================================================
---
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java
(original)
+++
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java
Thu Apr 4 03:49:40 2013
@@ -49,6 +49,7 @@ import org.apache.hadoop.hbase.HConstant
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.Stoppable;
+import org.apache.hadoop.hbase.TableNotFoundException;
import org.apache.hadoop.hbase.client.HConnection;
import org.apache.hadoop.hbase.client.HConnectionManager;
import org.apache.hadoop.hbase.ipc.HRegionInterface;
@@ -715,6 +716,12 @@ public class ReplicationSource extends T
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