Dimas Shidqi Parikesit created HBASE-30043:
----------------------------------------------
Summary: Truncate procedure with recovery enabled could process
non-existent regions if run concurrently with merge procedure
Key: HBASE-30043
URL: https://issues.apache.org/jira/browse/HBASE-30043
Project: HBase
Issue Type: Bug
Reporter: Dimas Shidqi Parikesit
During truncate recovery, the procedure can release the region lock between
states. If that region gets merged away in that gap, the truncate procedure
could still try to unassign/reassign or touch filesystem state for a region
that no longer exists.
The proposed fix adds an existence check before MAKE_OFFLINE, centralizes
region-node lookup in a helper that throws UnknownRegionException when the
region is gone, and makes rollback only reassign if the region still exists and
is in an offline/closed state.
The tests verify two things: truncate fails cleanly instead of recreating state
or scheduling child procedures, and rollback also does not recreate the removed
region or queue assigned work.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)