Merge pull request #14333 from rabbitmq/stream-sac-retry-unregister-consumer

Retry stream SAC unregister consumer operation
This commit is contained in:
Arnaud Cogoluègnes 2025-08-07 06:41:14 +00:00 committed by GitHub
commit 19692b8a27
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 17 additions and 3 deletions

View File

@ -4045,9 +4045,10 @@ sac_register_consumer(VH, St, PartitionIndex, Name, Pid, ConnName, SubId) ->
end).
sac_unregister_consumer(VH, St, Name, Pid, SubId) ->
sac_call(fun() ->
?SAC_MOD:unregister_consumer(VH, St, Name, Pid, SubId)
end).
Call = fun() ->
?SAC_MOD:unregister_consumer(VH, St, Name, Pid, SubId)
end,
sac_call(retryable_sac_call(Call)).
sac_call(Call) ->
case Call() of
@ -4063,3 +4064,16 @@ sac_call(Call) ->
R ->
R
end.
retryable_sac_call(Call) ->
fun() -> retry_sac_call(Call, 3) end.
retry_sac_call(_Call, 0) ->
{error, coordinator_unavailable};
retry_sac_call(Call, N) ->
case Call() of
{error, coordinator_unavailable} ->
retry_sac_call(Call, N - 1);
R ->
R
end.