Skip to content

Add function to clean up and re-evaluate stream SAC group#15731

Draft
acogoluegnes wants to merge 2 commits intomainfrom
stream-evaluate-sac-group-function
Draft

Add function to clean up and re-evaluate stream SAC group#15731
acogoluegnes wants to merge 2 commits intomainfrom
stream-evaluate-sac-group-function

Conversation

@acogoluegnes
Copy link
Contributor

@acogoluegnes acogoluegnes commented Mar 13, 2026

The function is meant to be used by an operator as a last resort to clean up a consumer group from "ghost" consumers and unblock the group.
At this point the SAC coordinator should work as expected but an upgrade from a version with known issues can end up with blocked groups. So this function should help unblock the groups manually.

It can be called like this:

rabbitmqctl eval 'rabbit_stream_coordinator:evaluate_sac_group(<<"/">>,
                                                               <<"stream-0">>,
                                                               <<"app1">>).'

References rabbitmq/rabbitmq-stream-dotnet-client#447

The stream SAC coordinator already keeps track of its monitors but
delegates some of the work to the stream coordinator (in its monitors
map).

This commit changes this to let the SAC coordinator handle its monitors
itself. This decouples the 2 coordinators. This also fixes a bug whereby
the SAC coordinator would correctly re-issue monitors but would not
modify the monitors map accordingly. The SAC coordinator would not then
be notified of the corresponding down messages.

References rabbitmq/rabbitmq-stream-dotnet-client#447
The function is meant to be used by an operator as a last resort to
clean up a consumer group from "ghost" consumers and unblock the group.

At this point the SAC coordinator should work as expected but an upgrade
from a version with known issues can end up with blocked groups. So this
function should help unblock the groups manually.

It can be called like this:

rabbitmqctl eval 'rabbit_stream_coordinator:evaluate_sac_group(<<"/">>,
                                                               <<"stream-0">>,
                                                               <<"app1">>).'

References rabbitmq/rabbitmq-stream-dotnet-client#447
@acogoluegnes acogoluegnes added this to the 4.3.0 milestone Mar 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant