[
https://issues.apache.org/jira/browse/HBASE-30389?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated HBASE-30389:
-----------------------------------
Labels: pull-request-available (was: )
> Normalize region locations when loading state after master failover
> -------------------------------------------------------------------
>
> Key: HBASE-30389
> URL: https://issues.apache.org/jira/browse/HBASE-30389
> Project: HBase
> Issue Type: Bug
> Components: master
> Affects Versions: 2.4.11
> Reporter: huginn
> Assignee: huginn
> Priority: Major
> Labels: pull-request-available
>
> h2. What happens
> After an active master failover, a region in a non-online state can retain an
> old region server in the new master's in-memory region location.
> h2. When it happens
> This can occur when the active master rebuilds assignment state from
> hbase:meta and the row still contains stale location columns for a region
> whose persisted state is not one of OPEN, OPENING, CLOSING, SPLITTING, or
> MERGING.
> h2. Impact
> The new master can expose stale region ownership that is inconsistent with
> its per-server assignment state, which can affect assignment-related
> decisions and status reporting.
> h2. Root cause
> AssignmentManager.RegionMetaLoadingVisitor.visitRegionState unconditionally
> copies the location read from hbase:meta into RegionStateNode, but only
> current-host states are added to a ServerStateNode. For CLOSED and other
> non-online states, a stale location can therefore remain in memory even
> though the region is not assigned to that server.
> See [AssignmentManager.java on community
> master|https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java#L1865-L1889].
> h2. Proposed fix
> Normalize the loaded location to null for states that do not have
> current-host semantics, while preserving lastHost for locality and recovery.
> Keep locations for online and transitioning states unchanged, and add
> regression coverage for master failover and state loading.
> h2. Reproduction / Testing
> Testing evidence will be added by the reporter.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)