diff options
| -rw-r--r-- | src/file_handle_cache.erl | 3 | ||||
| -rw-r--r-- | src/rabbit_msg_store.erl | 5 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/file_handle_cache.erl b/src/file_handle_cache.erl index 5b3485807d..8db5a7944b 100644 --- a/src/file_handle_cache.erl +++ b/src/file_handle_cache.erl @@ -382,7 +382,8 @@ copy(Src, Dest, Count) -> {ok, Count1} = Result1 -> {Result1, [SHandle #handle { offset = SOffset + Count1 }, - DHandle #handle { offset = DOffset + Count1 }]}; + DHandle #handle { offset = DOffset + Count1, + is_dirty = true }]}; Error -> {Error, [SHandle, DHandle]} end; diff --git a/src/rabbit_msg_store.erl b/src/rabbit_msg_store.erl index c7ebfd97f7..60fcd25896 100644 --- a/src/rabbit_msg_store.erl +++ b/src/rabbit_msg_store.erl @@ -1671,9 +1671,10 @@ find_unremoved_messages_in_file(File, {ok, Messages, _FileSize} = scan_file_for_valid_messages(Dir, filenum_to_name(File)), %% foldl will reverse so will end up with msgs in ascending offset order - lists:foldl(fun ({Guid, TotalSize, _Offset}, Acc = {List, Size}) -> + lists:foldl(fun ({Guid, TotalSize, Offset}, Acc = {List, Size}) -> case Index:lookup(Guid, IndexState) of - #msg_location { file = File } = Entry -> + #msg_location { file = File, total_size = TotalSize, + offset = Offset } = Entry -> {[ Entry | List ], TotalSize + Size}; _ -> Acc |
