summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@lshift.net>2009-06-19 17:17:56 +0100
committerMatthew Sackman <matthew@lshift.net>2009-06-19 17:17:56 +0100
commit6096fe52182b61165a5f36fe87c44730e645e2fa (patch)
tree8e29fd515ba7c971e80b7f32306b106d9867f39a
parent3fc57e1b7fdfb948e8470b0b63d7ebe1e9c91c25 (diff)
downloadrabbitmq-server-git-6096fe52182b61165a5f36fe87c44730e645e2fa.tar.gz
fixes
-rw-r--r--src/rabbit_disk_queue.erl5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/rabbit_disk_queue.erl b/src/rabbit_disk_queue.erl
index a7d4e6e3ca..329b453a4d 100644
--- a/src/rabbit_disk_queue.erl
+++ b/src/rabbit_disk_queue.erl
@@ -759,7 +759,7 @@ internal_read_message(Q, ReadSeqId, FakeDeliver, ReadMsg, State) ->
case ReadMsg of
true ->
case fetch_and_increment_cache(MsgId, State) of
- false ->
+ not_found ->
{FileHdl, State1} = get_read_handle(File, State),
{ok, {MsgBody, BodySize}} =
read_message_at_offset(FileHdl, Offset, TotalSize),
@@ -808,11 +808,11 @@ remove_messages(Q, MsgSeqIds, MnesiaDelete,
fun ({MsgId, SeqId}, Files1) ->
[{MsgId, RefCount, File, Offset, TotalSize}] =
dets_ets_lookup(State, MsgId),
- ok = decrement_cache(MsgId, State),
Files2 =
case RefCount of
1 ->
ok = dets_ets_delete(State, MsgId),
+ ok = remove_cache_entry(MsgId, State),
[{File, ValidTotalSize, ContiguousTop,
Left, Right}] = ets:lookup(FileSummary, File),
ContiguousTop1 =
@@ -826,6 +826,7 @@ remove_messages(Q, MsgSeqIds, MnesiaDelete,
true -> sets:add_element(File, Files1)
end;
_ when 1 < RefCount ->
+ ok = decrement_cache(MsgId, State),
ok = dets_ets_insert(
State, {MsgId, RefCount - 1,
File, Offset, TotalSize}),