From 72193650dde2225e85d7bdb74b24ad39367145da Mon Sep 17 00:00:00 2001 From: Michael Stack Date: Fri, 16 Feb 2018 22:59:32 -0800 Subject: [PATCH] HBASE-20015 TestMergeTableRegionsProcedure and TestRegionMergeTransactionOnCluster flakey --- .../master/assignment/MergeTableRegionsProcedure.java | 14 ++++++++++---- .../hbase/master/assignment/SplitTableRegionProcedure.java | 1 + 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.java index 4bccab71f3..baa399bece 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.java @@ -255,10 +255,16 @@ public class MergeTableRegionsProcedure throw new UnsupportedOperationException(this + " unhandled state=" + state); } } catch (IOException e) { - LOG.warn("Error trying to merge regions " + RegionInfo.getShortNameToLog(regionsToMerge) + - " in the table " + getTableName() + " (in state=" + state + ")", e); - - setFailure("master-merge-regions", e); + String msg = "Error trying to merge regions " + + RegionInfo.getShortNameToLog(regionsToMerge) + " in the table " + getTableName() + + " (in state=" + state + ")"; + if (!isRollbackSupported(state)) { + // We reach a state that cannot be rolled back. We just need to keep retry. + LOG.warn(msg, e); + } else { + LOG.error(msg, e); + setFailure("master-merge-regions", e); + } } return Flow.HAS_MORE_STATE; } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.java index c13956668f..e898d6abc9 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.java @@ -270,6 +270,7 @@ public class SplitTableRegionProcedure } else { LOG.error(msg, e); setFailure(e); + setFailure("master-split-regions", e); } } // if split fails, need to call ((HRegion)parent).clearSplit() when it is a force split -- 2.11.0 (Apple Git-81)