diff options
author | kjnilsson <knilsson@pivotal.io> | 2021-01-20 14:19:33 +0000 |
---|---|---|
committer | kjnilsson <knilsson@pivotal.io> | 2021-01-20 14:19:33 +0000 |
commit | f2418cfe4ca634753c5db518c1bd034ce6cfe771 (patch) | |
tree | e93041052a92e318162f072b37b901dfeae8f4ed /deps/rabbit/test | |
parent | 9835a43b992a11ba0f3564dd24890259f09c94df (diff) | |
download | rabbitmq-server-git-f2418cfe4ca634753c5db518c1bd034ce6cfe771.tar.gz |
Fix crash bug in QQ state conversion
When there are consumers in the service queue.
Diffstat (limited to 'deps/rabbit/test')
-rw-r--r-- | deps/rabbit/test/rabbit_fifo_SUITE.erl | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/deps/rabbit/test/rabbit_fifo_SUITE.erl b/deps/rabbit/test/rabbit_fifo_SUITE.erl index a9d541238d..1b8761f90e 100644 --- a/deps/rabbit/test/rabbit_fifo_SUITE.erl +++ b/deps/rabbit/test/rabbit_fifo_SUITE.erl @@ -1518,6 +1518,32 @@ machine_version_test(_) -> ?assert(priority_queue:is_queue(S)), ok. +machine_version_waiting_consumer_test(_) -> + V0 = rabbit_fifo_v0, + S0 = V0:init(#{name => ?FUNCTION_NAME, + queue_resource => rabbit_misc:r(<<"/">>, queue, <<"test">>)}), + Idx = 1, + {#rabbit_fifo{}, ok, []} = apply(meta(Idx), {machine_version, 0, 1}, S0), + + Cid = {atom_to_binary(?FUNCTION_NAME, utf8), self()}, + Entries = [ + {1, rabbit_fifo_v0:make_enqueue(self(), 1, banana)}, + {2, rabbit_fifo_v0:make_enqueue(self(), 2, apple)}, + {3, rabbit_fifo_v0:make_checkout(Cid, {auto, 5, unsettled}, #{})} + ], + {S1, _Effects} = rabbit_fifo_v0_SUITE:run_log(S0, Entries), + Self = self(), + {#rabbit_fifo{enqueuers = #{Self := #enqueuer{}}, + consumers = #{Cid := #consumer{priority = 0}}, + service_queue = S, + messages = Msgs}, ok, []} = apply(meta(Idx), + {machine_version, 0, 1}, S1), + %% validate message conversion to lqueue + ?assertEqual(0, lqueue:len(Msgs)), + ?assert(priority_queue:is_queue(S)), + ?assertEqual(1, priority_queue:len(S)), + ok. + queue_ttl_test(_) -> QName = rabbit_misc:r(<<"/">>, queue, <<"test">>), Conf = #{name => ?FUNCTION_NAME, |