Index: src/java/org/apache/hadoop/hbase/client/HConnectionManager.java =================================================================== --- src/java/org/apache/hadoop/hbase/client/HConnectionManager.java (revision 907382) +++ src/java/org/apache/hadoop/hbase/client/HConnectionManager.java (working copy) @@ -44,6 +44,8 @@ import org.apache.hadoop.hbase.MasterNotRunningException; import org.apache.hadoop.hbase.RemoteExceptionHandler; import org.apache.hadoop.hbase.TableNotFoundException; +import org.apache.hadoop.hbase.NotServingRegionException; +import org.apache.hadoop.hbase.regionserver.WrongRegionException; import org.apache.hadoop.hbase.client.MetaScanner.MetaScannerVisitor; import org.apache.hadoop.hbase.ipc.HBaseRPC; import org.apache.hadoop.hbase.ipc.HBaseRPCProtocolVersion; @@ -735,12 +737,15 @@ this.numRetries + " failed; retrying after sleep of " + getPauseTime(tries) + " because: " + e.getMessage()); } - relocateRegion(parentTable, metaKey); } else { throw e; } + // Only relocate the parent table if necessary + if(e instanceof NotServingRegionException || + e instanceof WrongRegionException) { + relocateRegion(parentTable, metaKey); + } } - try{ Thread.sleep(getPauseTime(tries)); } catch (InterruptedException e){