diff --git a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java index a5b5825..16d3ded 100644 --- a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java +++ b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java @@ -359,6 +359,24 @@ public class ProcedureStoreTracker { } private BitSetNode getOrCreateNode(long procId) { + // See HBASE-20973, grow or merge can lead to ArrayIndexOutOfBoundsException + // The root cause is not revealed yet, disable grow or merge for now + return getOrCreateNodeNoGrowOrMerge(procId); + } + + private BitSetNode getOrCreateNodeNoGrowOrMerge(long procId) { + Map.Entry entry = map.floorEntry(procId); + if (entry != null && entry.getValue().contains(procId)) { + return entry.getValue(); + } else { + BitSetNode node = new BitSetNode(procId, partial); + assert !map.containsKey(node.getStart()); + map.put(node.getStart(), node); + return node; + } + } + + private BitSetNode getOrCreateNodeWithGrowOrMerge(long procId) { // If procId can fit in left node (directly or by growing it) BitSetNode leftNode = null; boolean leftCanGrow = false; diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java index 771692b..90692b09 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java @@ -228,6 +228,8 @@ public class HRegionServer extends HasThread implements @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="MS_SHOULD_BE_FINAL") public static boolean TEST_SKIP_REPORTING_TRANSITION = false; + // A trival change to trigger UT + //RegionName vs current action in progress //true - if open region action in progress //false - if close region action in progress