Handle Khepri timeouts when attempting to delete crashed classic Qs
This commit is contained in:
parent
c37b192beb
commit
4f0da67420
|
|
@ -1691,7 +1691,10 @@ delete_crashed(Q) when ?amqqueue_is_classic(Q) ->
|
|||
delete_crashed(Q, ActingUser) when ?amqqueue_is_classic(Q) ->
|
||||
rabbit_classic_queue:delete_crashed(Q, ActingUser).
|
||||
|
||||
-spec delete_crashed_internal(amqqueue:amqqueue(), rabbit_types:username()) -> 'ok'.
|
||||
-spec delete_crashed_internal(Q, ActingUser) -> Ret when
|
||||
Q :: amqqueue:amqqueue(),
|
||||
ActingUser :: rabbit_types:username(),
|
||||
Ret :: ok | {error, timeout}.
|
||||
delete_crashed_internal(Q, ActingUser) when ?amqqueue_is_classic(Q) ->
|
||||
rabbit_classic_queue:delete_crashed_internal(Q, ActingUser).
|
||||
|
||||
|
|
|
|||
|
|
@ -168,8 +168,15 @@ delete(Q0, IfUnused, IfEmpty, ActingUser) when ?amqqueue_is_classic(Q0) ->
|
|||
rabbit_log:warning("Queue ~ts in vhost ~ts is down. "
|
||||
"Forcing queue deletion.",
|
||||
[Name, Vhost]),
|
||||
delete_crashed_internal(Q, ActingUser),
|
||||
{ok, 0}
|
||||
case delete_crashed_internal(Q, ActingUser) of
|
||||
ok ->
|
||||
{ok, 0};
|
||||
{error, timeout} ->
|
||||
{error, protocol_error,
|
||||
"The operation to delete ~ts from the "
|
||||
"metadata store timed out",
|
||||
[rabbit_misc:rs(QName)]}
|
||||
end
|
||||
end
|
||||
end;
|
||||
{error, not_found} ->
|
||||
|
|
@ -551,7 +558,7 @@ delete_crashed(Q, ActingUser) ->
|
|||
|
||||
delete_crashed_internal(Q, ActingUser) ->
|
||||
delete_crashed_in_backing_queue(Q),
|
||||
ok = rabbit_amqqueue:internal_delete(Q, ActingUser).
|
||||
rabbit_amqqueue:internal_delete(Q, ActingUser).
|
||||
|
||||
delete_crashed_in_backing_queue(Q) ->
|
||||
{ok, BQ} = application:get_env(rabbit, backing_queue_module),
|
||||
|
|
|
|||
Loading…
Reference in New Issue