nirdosh0110 opened a new pull request, #8584:
URL: https://github.com/apache/hbase/pull/8584

   ## Summary
   - The master's `flushedSequenceIdByRegion` is only updated via periodic 
RegionServer heartbeats. On a fresh region OPEN, the entry is absent, so 
`ServerManager.getLastFlushedSequenceId` returns `NO_SEQNUM` and `WALSplitter` 
treats every WAL edit as un-flushed. If the source RS of a drain-move crashes 
before its next heartbeat, this produces orphaned `recovered.edits` files 
containing already-durable edits, which then surface as false-positive "data 
loss" warnings during subsequent merge/split operations and leave regions stuck 
in RIT.
   - Add `ServerManager.reportRegionOpen(regionInfo, openSeqNum)` and call it 
from `AssignmentManager.regionOpenedWithoutPersistingToMeta` so the master 
seeds its flushed-sequence cache synchronously with the `openSeqNum` reported 
on the OPEN transition.
   - `putIfAbsent` is used so a heartbeat-supplied value (which may reflect 
flushes after open) is never regressed.
   
   JIRA: https://issues.apache.org/jira/browse/HBASE-30335
   
   ## Test plan
   - [ ] Existing `TestAssignmentManager` and `TestServerManager` suites pass.
   - [ ] Reproduce: drain-move a region, kill source RS before next heartbeat, 
verify no `recovered.edits` are produced for already-flushed sequence numbers 
and no downstream stuck RIT on a follow-up merge.
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to