rabbit_stream_coordinator: Handle delete_stream idempotently#14884
Merged
rabbit_stream_coordinator: Handle delete_stream idempotently#14884
Conversation
Within `rabbit_stream_coordinator:delete_stream/2`, the stream could be successfully deleted from the stream coordinator but the update to the metadata store (`rabbit_amqqueue:internal_delete/2`) could fail separately. If this happens then subsequent attempts to delete the stream also fail because the coordinator did not reply to `delete_stream` requests for unknown stream IDs. This change has the stream coordinator reply `ok` when it receives a `delete_stream` command and the stream is `undefined`. This would let the `delete_stream/2` continue and remove the lingering state from the metadata store.
Collaborator
Author
|
The change turned out to be smaller than I expected if we take advantage of the existing Does this need a new machine version? The only difference between old and new version is adding the reply effect, and reply effects are dropped by followers and during recovery IIRC. |
michaelklishin
approved these changes
Nov 3, 2025
Collaborator
michaelklishin
left a comment
There was a problem hiding this comment.
It looks like a reasonable and low risk change to me.
I'll defer to @kjnilsson @acogoluegnes.
kjnilsson
approved these changes
Nov 4, 2025
michaelklishin
added a commit
that referenced
this pull request
Nov 4, 2025
rabbit_stream_coordinator: Handle delete_stream idempotently (backport #14884)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Within
rabbit_stream_coordinator:delete_stream/2, the stream could be successfully deleted from the stream coordinator but the update to the metadata store (rabbit_amqqueue:internal_delete/2) could fail separately. If this happens then subsequent attempts to delete the stream also fail because the coordinator did not reply todelete_streamrequests for unknown stream IDs.This change has the stream coordinator reply
okwhen it receives adelete_streamcommand and the stream isundefined. This would let thedelete_stream/2continue and remove the lingering state from the metadata store.Fixes #14852