summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Klishin <michael@novemberain.com>2018-12-19 16:41:45 +0300
committerGitHub <noreply@github.com>2018-12-19 16:41:45 +0300
commit05ab88dc231d82660f97428614032a446ef09e81 (patch)
treea0e6c8296823e79daf1da65e6eeaf089e5851653
parente8fb108131762a5511c7c6b091642f19cd29994b (diff)
parentd6dd9d05cab9eea95c49350b287a4182583c693d (diff)
downloadrabbitmq-server-git-05ab88dc231d82660f97428614032a446ef09e81.tar.gz
Merge pull request #1806 from rabbitmq/report-message-bytes
quorum queue: reset message bytes on purge
-rw-r--r--src/rabbit_fifo.erl11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/rabbit_fifo.erl b/src/rabbit_fifo.erl
index 8c7b208855..1fc467913e 100644
--- a/src/rabbit_fifo.erl
+++ b/src/rabbit_fifo.erl
@@ -429,6 +429,8 @@ apply(#{index := RaftIdx}, #purge{}, Effects0,
State1#state{ra_indexes = rabbit_fifo_index:empty(),
messages = #{},
returns = lqueue:new(),
+ msg_bytes_enqueue = 0,
+ msg_bytes_checkout = 0,
low_msg_num = undefined}, Effects1),
{State, [garbage_collection | Effects], {purge, Total}};
apply(_, {down, ConsumerPid, noconnection},
@@ -1866,9 +1868,14 @@ purge_test() ->
purge_with_checkout_test() ->
Cid = {<<"purge_test">>, self()},
{State0, _} = check_auto(Cid, 1, test_init(?FUNCTION_NAME)),
- {State1, _} = enq(2, 1, first, State0),
- {State2, _} = enq(3, 2, second, State1),
+ {State1, _} = enq(2, 1, <<"first">>, State0),
+ {State2, _} = enq(3, 2, <<"second">>, State1),
+ %% assert message bytes are non zero
+ ?assert(State2#state.msg_bytes_checkout > 0),
+ ?assert(State2#state.msg_bytes_enqueue > 0),
{State3, _, {purge, 2}} = apply(meta(2), make_purge(), [], State2),
+ ?assertEqual(0, State3#state.msg_bytes_checkout),
+ ?assertEqual(0, State3#state.msg_bytes_enqueue),
#consumer{checked_out = Checked} = maps:get(Cid, State3#state.consumers),
?assertEqual(0, maps:size(Checked)),
ok.