Fix stream SAC coordinator deadlock when deactivating consumer disconnects (backport #15353)#15364
Merged
acogoluegnes merged 1 commit intov4.2.xfrom Jan 28, 2026
Merged
Conversation
…nects
When a consumer in {connected, deactivating} state had its node
disconnect, it would transition to {disconnected, deactivating}.
This state blocked rebalancing because is_active/1 returned true,
leaving the group with no active consumer indefinitely.
Changes:
- handle_group_after_connection_node_disconnected now transitions
{connected, deactivating} to {disconnected, waiting} and triggers
rebalancing, since the deactivation handshake cannot complete
- handle_group_connection_presumed_down applies the same fix as
defense in depth for {disconnected, deactivating} consumers
- handle_connection_node_disconnected updated to accumulate effects
from group processing
- bump stream coordinator machine version to 6 and handle backward
compatibility
Added test cases covering:
- Node disconnect during deactivation (simple and super streams)
- Connection down during deactivation
- Multiple consumers from same connection with one deactivating
- Reconnection after disconnect during deactivation
- Presume down with deactivating consumer (simple and super streams)
References rabbitmq/rabbitmq-stream-dotnet-client#447
(cherry picked from commit cd87226)
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.
When a consumer in {connected, deactivating} state had its node
disconnect, it would transition to {disconnected, deactivating}.
This state blocked rebalancing because is_active/1 returned true,
leaving the group with no active consumer indefinitely.
Changes:
{connected, deactivating} to {disconnected, waiting} and triggers
rebalancing, since the deactivation handshake cannot complete
defense in depth for {disconnected, deactivating} consumers
from group processing
compatibility
Added test cases covering:
References rabbitmq/rabbitmq-stream-dotnet-client#447
This is an automatic backport of pull request #15353 done by Mergify.