Skip to content

test(e2e): ask a leader again while it declines a forwarded write - #4924

Draft
Ignition wants to merge 1 commit into
ha/retry-the-refusal-the-server-calls-retryablefrom
ha/retry-a-forwarded-write-the-leader-refuses
Draft

Ignition wants to merge 1 commit into
ha/retry-the-refusal-the-server-calls-retryablefrom
ha/retry-a-forwarded-write-the-leader-refuses

Conversation

@Ignition

Copy link
Copy Markdown
Contributor

A follower forwards a coordinator write to whichever coordinator it last saw leading, and the leader serves it only while it is ready. Nothing holds it ready between the follower reading that it leads and the forwarded write arriving, so the write can be declined for a state that has already passed, and no state the caller can read beforehand settles whether the next one will be served. The refusal is how the caller learns.

Every query in this file asks for something the test has just arranged, which rules out the reasons a leader declines for good and leaves only the ones that pass, so they share one seam that asks again on a budget. Asking a follower to remove the leader is the exception, being declined for good, and is asked once. The leader's own reason does not cross the wire, so the text a caller matches on cannot tell a leader that was not ready from one that refused for good, and only the caller's own request separates them.

A follower forwards a coordinator write to whichever coordinator it last saw
leading, and the leader serves it only while it is ready. Nothing holds it
ready between the follower reading that it leads and the forwarded write
arriving, so the write can be declined for a state that has already passed,
and no state the caller can read beforehand settles whether the next one
will be served. The refusal is how the caller learns.

Every query in this file asks for something the test has just arranged, which
rules out the reasons a leader declines for good and leaves only the ones
that pass, so they share one seam that asks again on a budget. Asking a
follower to remove the leader is the exception, being declined for good, and
is asked once. The leader's own reason does not cross the wire, so the text a
caller matches on cannot tell a leader that was not ready from one that
refused for good, and only the caller's own request separates them.
@Ignition
Ignition added this pull request to stack #4925 September 24, 2026 09:37
@Ignition Ignition self-assigned this Sep 24, 2026
@Ignition
Ignition requested a review from as51340 September 24, 2026 09:37
@Ignition
Ignition marked this pull request as ready for review September 24, 2026 09:37
@sonarqubecloud

Copy link
Copy Markdown

@as51340 as51340 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as here #4920 (review)

@Ignition
Ignition removed this pull request from stack #4925 September 24, 2026 10:36
@Ignition
Ignition marked this pull request as draft September 24, 2026 13:47
@Ignition
Ignition added this pull request to stack #4930 September 24, 2026 14:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants