summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@rabbitmq.com>2011-03-14 17:55:47 +0000
committerMatthew Sackman <matthew@rabbitmq.com>2011-03-14 17:55:47 +0000
commit0cad8ee6ed090daa4ef510762a7cc24bf7b38a3a (patch)
tree537a0791fdca92ace4592fbb83d0a10cf09f5fe9
parente4edc17159a885dc118938ccff3ffe5da93160d6 (diff)
downloadrabbitmq-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.erl20
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,