diff options
| author | Matthew Sackman <matthew@lshift.net> | 2009-10-16 12:12:28 +0100 |
|---|---|---|
| committer | Matthew Sackman <matthew@lshift.net> | 2009-10-16 12:12:28 +0100 |
| commit | fd898a5062c75057f1d7979ada125a0f5ac1ae0b (patch) | |
| tree | 9ed33b2a02c5f6afe651884cec2547557a2014be /src | |
| parent | 42fac66afc783aecba5c6828aa82a0330f498067 (diff) | |
| download | rabbitmq-server-git-fd898a5062c75057f1d7979ada125a0f5ac1ae0b.tar.gz | |
bug fix.
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_variable_queue.erl | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl index 446042e0f7..745d59eadd 100644 --- a/src/rabbit_variable_queue.erl +++ b/src/rabbit_variable_queue.erl @@ -280,7 +280,10 @@ ack(AckTags, State = #vqstate { index_state = IndexState }) -> [] -> IndexState; _ -> rabbit_queue_index:write_acks(SeqIds, IndexState) end, - ok = rabbit_msg_store:remove(MsgIds), + ok = case MsgIds of + [] -> ok; + _ -> rabbit_msg_store:remove(MsgIds) + end, State #vqstate { index_state = IndexState1 }. purge(State = #vqstate { prefetcher = undefined, q4 = Q4, @@ -340,7 +343,10 @@ tx_publish(_Msg, State) -> State. tx_rollback(Pubs, State) -> - ok = rabbit_msg_store:remove(persistent_msg_ids(Pubs)), + ok = case persistent_msg_ids(Pubs) of + [] -> ok; + PP -> rabbit_msg_store:remove(PP) + end, State. tx_commit(Pubs, AckTags, State) -> @@ -642,6 +648,8 @@ maybe_write_msg_to_disk(Bool, PersistentMsgsAlreadyOnDisk, orelse (IsPersistent andalso not PersistentMsgsAlreadyOnDisk) -> ok = rabbit_msg_store:write(MsgId, ensure_binary_properties(Msg)), true; +maybe_write_msg_to_disk(_Bool, true, #basic_message { is_persistent = true }) -> + true; maybe_write_msg_to_disk(_Bool, _PersistentMsgsAlreadyOnDisk, _Msg) -> false. |
