diff options
author | Matthew Sackman <matthew@rabbitmq.com> | 2011-03-14 17:55:47 +0000 |
---|---|---|
committer | Matthew Sackman <matthew@rabbitmq.com> | 2011-03-14 17:55:47 +0000 |
commit | 0cad8ee6ed090daa4ef510762a7cc24bf7b38a3a (patch) | |
tree | 537a0791fdca92ace4592fbb83d0a10cf09f5fe9 | |
parent | e4edc17159a885dc118938ccff3ffe5da93160d6 (diff) | |
download | rabbitmq-server-0cad8ee6ed090daa4ef510762a7cc24bf7b38a3a.tar.gz |
Start the GC before we rebuild the index, and store it in the State
-rw-r--r-- | src/rabbit_msg_store.erl | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/rabbit_msg_store.erl b/src/rabbit_msg_store.erl index 4f5d2411..1bc4fd6b 100644 --- a/src/rabbit_msg_store.erl +++ b/src/rabbit_msg_store.erl @@ -646,6 +646,15 @@ init([Server, BaseDir, ClientRefs, StartupFunState]) -> {ok, FileSizeLimit} = application:get_env(msg_store_file_size_limit), + {ok, GCPid} = rabbit_msg_store_gc:start_link( + #gc_state { dir = Dir, + index_module = IndexModule, + index_state = IndexState, + file_summary_ets = FileSummaryEts, + file_handles_ets = FileHandlesEts, + msg_store = self() + }), + State = #msstate { dir = Dir, index_module = IndexModule, index_state = IndexState, @@ -657,7 +666,7 @@ init([Server, BaseDir, ClientRefs, StartupFunState]) -> sum_valid_data = 0, sum_file_size = 0, pending_gc_completion = orddict:new(), - gc_pid = undefined, + gc_pid = GCPid, file_handles_ets = FileHandlesEts, file_summary_ets = FileSummaryEts, dedup_cache_ets = DedupCacheEts, @@ -680,15 +689,6 @@ init([Server, BaseDir, ClientRefs, StartupFunState]) -> {ok, Offset} = file_handle_cache:position(CurHdl, Offset), ok = file_handle_cache:truncate(CurHdl), - {ok, GCPid} = rabbit_msg_store_gc:start_link( - #gc_state { dir = Dir, - index_module = IndexModule, - index_state = IndexState, - file_summary_ets = FileSummaryEts, - file_handles_ets = FileHandlesEts, - msg_store = self() - }), - {ok, maybe_compact( State1 #msstate { current_file_handle = CurHdl, gc_pid = GCPid }), hibernate, |