summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2011-01-11 16:12:20 +0000
committerMatthias Radestock <matthias@rabbitmq.com>2011-01-11 16:12:20 +0000
commit883f064599382f440949ae73cc71671eeced7451 (patch)
treefdf03c3af9f440fc4b7921e8aab710ff0e579c51
parent74288bb9604849ac492f9b714c25dce6c9174628 (diff)
downloadrabbitmq-server-883f064599382f440949ae73cc71671eeced7451.tar.gz
fix a bug
-rw-r--r--src/rabbit_variable_queue.erl11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl
index 18423dd7..c678236f 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,