diff options
| -rw-r--r-- | src/rabbit_variable_queue.erl | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl index 18423dd7b0..c678236f71 100644 --- a/src/rabbit_variable_queue.erl +++ b/src/rabbit_variable_queue.erl @@ -1391,10 +1391,13 @@ find_persistent_count(LensByStore) -> %% Internal plumbing for confirms (aka publisher acks) %%---------------------------------------------------------------------------- -confirm_commit_index(State = #vqstate { unconfirmed = [] }) -> - State; -confirm_commit_index(State = #vqstate { index_state = IndexState }) -> - State #vqstate { index_state = rabbit_queue_index:sync(IndexState) }. +confirm_commit_index(State = #vqstate { unconfirmed = UC, + index_state = IndexState }) -> + case gb_sets:is_empty(UC) of + true -> State; + false -> State #vqstate { + index_state = rabbit_queue_index:sync(IndexState) } + end. remove_confirms(GuidSet, State = #vqstate { msgs_on_disk = MOD, msg_indices_on_disk = MIOD, |
