[ 
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)

Reply via email to