diff --git a/CHANGES.txt b/CHANGES.txt index f21553b823f..0cf6dad1d12 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -816,6 +816,8 @@ Release 0.90.0 - Unreleased HBASE-3402 Web UI shows two META regions HBASE-3409 Failed server shutdown processing when retrying hlog split HBASE-3412 HLogSplitter should handle missing HLogs + HBASE-3420 Handling a big rebalance, we can queue multiple instances of + a Close event; messes up state IMPROVEMENTS diff --git a/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java b/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java index 675810d8e37..e44b8e0b7c3 100644 --- a/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java +++ b/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java @@ -1567,11 +1567,13 @@ public class AssignmentManager extends ZooKeeperListener { // Expired! Do a retry. switch (regionState.getState()) { case CLOSED: - LOG.info("Region has been CLOSED for too long, " + - "retriggering ClosedRegionHandler"); - AssignmentManager.this.executorService.submit( - new ClosedRegionHandler(master, AssignmentManager.this, - regionState.getRegion())); + LOG.info("Region " + regionInfo.getEncodedName() + + " has been CLOSED for too long, waiting on queued " + + "ClosedRegionHandler to run or server shutdown"); + // Update our timestamp. + synchronized(regionState) { + regionState.update(regionState.getState()); + } break; case OFFLINE: LOG.info("Region has been OFFLINE for too long, " +