diff options
| author | kjnilsson <knilsson@pivotal.io> | 2018-12-19 13:18:58 +0000 |
|---|---|---|
| committer | kjnilsson <knilsson@pivotal.io> | 2018-12-19 13:18:58 +0000 |
| commit | d6dd9d05cab9eea95c49350b287a4182583c693d (patch) | |
| tree | a0e6c8296823e79daf1da65e6eeaf089e5851653 /src | |
| parent | e8fb108131762a5511c7c6b091642f19cd29994b (diff) | |
| download | rabbitmq-server-git-d6dd9d05cab9eea95c49350b287a4182583c693d.tar.gz | |
quorum queue: reset message bytes on purge
[#161505138]
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_fifo.erl | 11 |
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. |
