diff options
| author | Matthew Sackman <matthew@rabbitmq.com> | 2010-09-08 01:37:18 +0100 |
|---|---|---|
| committer | Matthew Sackman <matthew@rabbitmq.com> | 2010-09-08 01:37:18 +0100 |
| commit | 2969f6ad2a7d1192901dddbfa3bb1862a0295cd9 (patch) | |
| tree | cdb22d106e63611bb643d9c19f3d8e86f8bb858c | |
| parent | 861a14118826c0edb58fc26521819da0841e65e7 (diff) | |
| download | rabbitmq-server-git-2969f6ad2a7d1192901dddbfa3bb1862a0295cd9.tar.gz | |
Scan the file and remove from the index as necessary on file delete rather than index_delete_by_file
| -rw-r--r-- | src/rabbit_msg_store.erl | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/rabbit_msg_store.erl b/src/rabbit_msg_store.erl index 337f04ab62..f9345c0b33 100644 --- a/src/rabbit_msg_store.erl +++ b/src/rabbit_msg_store.erl @@ -1535,7 +1535,10 @@ delete_file_if_empty(File, State = #msstate { end, true = mark_handle_to_close(FileHandlesEts, File), true = ets:delete(FileSummaryEts, File), - ok = index_delete_by_file(File, State), + {ok, Messages, FileSize} = + scan_file_for_valid_messages(Dir, filenum_to_name(File)), + [index_delete(Guid, State) || + {Guid, _TotalSize, _Offset} <- Messages], State1 = close_handle(File, State), ok = file:delete(form_filename(Dir, filenum_to_name(File))), State1 #msstate { sum_file_size = SumFileSize - FileSize }; |
