Skip to content

Commit 4f0da67

Browse files
committed
Handle Khepri timeouts when attempting to delete crashed classic Qs
1 parent c37b192 commit 4f0da67

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

deps/rabbit/src/rabbit_amqqueue.erl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1691,7 +1691,10 @@ delete_crashed(Q) when ?amqqueue_is_classic(Q) ->
16911691
delete_crashed(Q, ActingUser) when ?amqqueue_is_classic(Q) ->
16921692
rabbit_classic_queue:delete_crashed(Q, ActingUser).
16931693

1694-
-spec delete_crashed_internal(amqqueue:amqqueue(), rabbit_types:username()) -> 'ok'.
1694+
-spec delete_crashed_internal(Q, ActingUser) -> Ret when
1695+
Q :: amqqueue:amqqueue(),
1696+
ActingUser :: rabbit_types:username(),
1697+
Ret :: ok | {error, timeout}.
16951698
delete_crashed_internal(Q, ActingUser) when ?amqqueue_is_classic(Q) ->
16961699
rabbit_classic_queue:delete_crashed_internal(Q, ActingUser).
16971700

deps/rabbit/src/rabbit_classic_queue.erl

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -168,8 +168,15 @@ delete(Q0, IfUnused, IfEmpty, ActingUser) when ?amqqueue_is_classic(Q0) ->
168168
rabbit_log:warning("Queue ~ts in vhost ~ts is down. "
169169
"Forcing queue deletion.",
170170
[Name, Vhost]),
171-
delete_crashed_internal(Q, ActingUser),
172-
{ok, 0}
171+
case delete_crashed_internal(Q, ActingUser) of
172+
ok ->
173+
{ok, 0};
174+
{error, timeout} ->
175+
{error, protocol_error,
176+
"The operation to delete ~ts from the "
177+
"metadata store timed out",
178+
[rabbit_misc:rs(QName)]}
179+
end
173180
end
174181
end;
175182
{error, not_found} ->
@@ -551,7 +558,7 @@ delete_crashed(Q, ActingUser) ->
551558

552559
delete_crashed_internal(Q, ActingUser) ->
553560
delete_crashed_in_backing_queue(Q),
554-
ok = rabbit_amqqueue:internal_delete(Q, ActingUser).
561+
rabbit_amqqueue:internal_delete(Q, ActingUser).
555562

556563
delete_crashed_in_backing_queue(Q) ->
557564
{ok, BQ} = application:get_env(rabbit, backing_queue_module),

0 commit comments

Comments
 (0)