diff --git a/CHANGES.txt b/CHANGES.txt index 77e2bb57747..4dd4999bfc9 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,6 +1,7 @@ HBase Change Log +Release 0.93.0 - Unreleased -Release 0.91.0 - Unreleased +Release 0.92.0 - Unreleased INCOMPATIBLE CHANGES HBASE-2002 Coprocessors: Client side support; Support RPC interface changes at runtime (Gary Helmling via Andrew Purtell) @@ -293,6 +294,8 @@ Release 0.91.0 - Unreleased (Ramkrishna) HBASE-4452 Possibility of RS opening a region though tickleOpening fails due to znode version mismatch (Ramkrishna) + HBASE-4446 Rolling restart RSs scenario, regions could stay in OPENING state + (Ming Ma) TESTS HBASE-4450 test for number of blocks read: to serve as baseline for expected 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 c53d3be477c..79ddf145a3e 100644 --- a/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java +++ b/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java @@ -1523,7 +1523,7 @@ public class AssignmentManager extends ZooKeeperListener { // to OFFLINE state meanwhile the RS could have opened the corresponding // region and the state in znode will be RS_ZK_REGION_OPENED. // For all other cases we can change the in-memory state to OFFLINE. - if (hijack && + if (hijack && (state.getState().equals(RegionState.State.PENDING_OPEN) || state.getState().equals(RegionState.State.OPENING))) { state.update(RegionState.State.PENDING_OPEN); @@ -2504,7 +2504,8 @@ public class AssignmentManager extends ZooKeeperListener { LOG.debug("Region has transitioned to OPENED, allowing " + "watched event handlers to process"); return; - } else if (dataInZNode.getEventType() != EventType.RS_ZK_REGION_OPENING) { + } else if (dataInZNode.getEventType() != EventType.RS_ZK_REGION_OPENING && + dataInZNode.getEventType() != EventType.RS_ZK_REGION_FAILED_OPEN ) { LOG.warn("While timing out a region in state OPENING, " + "found ZK node in unexpected state: " + dataInZNode.getEventType());