hubcio opened a new pull request, #4246: URL: https://github.com/apache/iggy/pull/4246
After a leader restart a rejoining backup asked its repair peer for ops 9..=8, a range header validation rejects. The floor installed by a RangeEvicted reply is verified on every RepairDone, but the commit walk can pass it before the reply lands, evicting the headers of the ops it committed. Such a floor never connects and its window never looks complete, so the refusal stays InProgress while the walk runs commit_min to the fetch ceiling, and the reply handler then requests commit_min + 1 ..= fetch_to_op. Skip the floor check when the raw floor is at or below commit_min: it cannot move the commit point and everything below it is applied. The clamp to commit_max stays inside the check so a peer retaining nothing this replica needs still escapes to state transfer. The reply handler also stops pulling a chunk once the walk stands at the ceiling, the guard the stall retry already had. Making the refusal definitive instead would arm a state transfer on a replica that holds every committed op. Fixes #4230 -- 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]
