summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkjnilsson <knilsson@pivotal.io>2020-10-05 11:41:12 +0100
committerkjnilsson <knilsson@pivotal.io>2020-10-05 11:41:50 +0100
commit01ad6dae2f04f463c88bcd844149961b91ecf34d (patch)
treecdd2a2ab0d460c136a08b4c1a0fb8dff9792721c
parent0677cdb2d363ee9393382cccd313a6680cc4f409 (diff)
downloadrabbitmq-server-git-01ad6dae2f04f463c88bcd844149961b91ecf34d.tar.gz
Backwards compatibility fixes
For classic queues mostly.
-rw-r--r--src/rabbit_amqqueue.erl14
-rw-r--r--src/rabbit_channel.erl6
-rw-r--r--src/rabbit_classic_queue.erl5
-rw-r--r--test/dynamic_ha_SUITE.erl7
4 files changed, 28 insertions, 4 deletions
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl
index 02d37350b4..78552ae440 100644
--- a/src/rabbit_amqqueue.erl
+++ b/src/rabbit_amqqueue.erl
@@ -45,6 +45,9 @@
-export([ensure_rabbit_queue_record_is_initialized/1]).
-export([format/1]).
-export([delete_immediately_by_resource/1]).
+-export([delete_crashed/1,
+ delete_crashed/2,
+ delete_crashed_internal/2]).
-export([pid_of/1, pid_of/2]).
-export([mark_local_durable_queues_stopped/1]).
@@ -1409,6 +1412,17 @@ delete_immediately_by_resource(Resources) ->
delete(Q, IfUnused, IfEmpty, ActingUser) ->
rabbit_queue_type:delete(Q, IfUnused, IfEmpty, ActingUser).
+%% delete_crashed* INCLUDED FOR BACKWARDS COMPATBILITY REASONS
+delete_crashed(Q) when ?amqqueue_is_classic(Q) ->
+ rabbit_classic_queue:delete_crashed(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'.
+delete_crashed_internal(Q, ActingUser) when ?amqqueue_is_classic(Q) ->
+ rabbit_classic_queue:delete_crashed_internal(Q, ActingUser).
+
-spec purge(amqqueue:amqqueue()) -> qlen().
purge(Q) when ?is_amqqueue(Q) ->
rabbit_queue_type:purge(Q).
diff --git a/src/rabbit_channel.erl b/src/rabbit_channel.erl
index b5c4ca8ca0..b788180b0f 100644
--- a/src/rabbit_channel.erl
+++ b/src/rabbit_channel.erl
@@ -2709,7 +2709,7 @@ handle_queue_actions(Actions, #ch{} = State0) ->
end, State0, Actions).
-find_queue_name_from_pid(Pid, QStates) ->
+find_queue_name_from_pid(Pid, QStates) when is_pid(Pid) ->
Fun = fun(K, _V, undefined) ->
{ok, Q} = rabbit_amqqueue:lookup(K),
Pids = get_queue_pids(Q),
@@ -2718,7 +2718,9 @@ find_queue_name_from_pid(Pid, QStates) ->
K;
false ->
undefined
- end
+ end;
+ (_K, _V, Acc) ->
+ Acc
end,
rabbit_queue_type:fold_state(Fun, undefined, QStates).
diff --git a/src/rabbit_classic_queue.erl b/src/rabbit_classic_queue.erl
index cd601eb5ca..c9d9b951c9 100644
--- a/src/rabbit_classic_queue.erl
+++ b/src/rabbit_classic_queue.erl
@@ -336,7 +336,10 @@ info(Q, Items) ->
{ok, Result} ->
Result;
{error, _Err} ->
- []
+ [];
+ Result when is_list(Result) ->
+ %% this is a backwards compatibility clause
+ Result
end.
-spec purge(amqqueue:amqqueue()) ->
diff --git a/test/dynamic_ha_SUITE.erl b/test/dynamic_ha_SUITE.erl
index c881aef8a1..85969135b6 100644
--- a/test/dynamic_ha_SUITE.erl
+++ b/test/dynamic_ha_SUITE.erl
@@ -969,7 +969,12 @@ wait_for_last_policy(QueueName, NodeA, TestedPolicies, Tries) ->
%% Let's wait a bit longer.
timer:sleep(1000),
wait_for_last_policy(QueueName, NodeA, TestedPolicies, Tries - 1);
- {ok, FinalInfo} ->
+ Result ->
+ FinalInfo = case Result of
+ {ok, I} -> I;
+ _ when is_list(Result) ->
+ Result
+ end,
%% The last policy is the final state
LastPolicy = lists:last(TestedPolicies),
case verify_policy(LastPolicy, FinalInfo) of