summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Watson <tim@rabbitmq.com>2013-12-10 14:22:57 +0000
committerTim Watson <tim@rabbitmq.com>2013-12-10 14:22:57 +0000
commite73271fdb74898cce0982a181a849a8a937cbe65 (patch)
tree91496215dbaeaa70b63af4e4170a5dfe13770c46
parent5c81d8ef6c8f56a3cebf150cea83c04c8391b315 (diff)
downloadrabbitmq-server-e73271fdb74898cce0982a181a849a8a937cbe65.tar.gz
Handle recovery index startup errors cleanly
-rw-r--r--src/rabbit_recovery_indexes.erl13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/rabbit_recovery_indexes.erl b/src/rabbit_recovery_indexes.erl
index 460aaa1c..de72aef6 100644
--- a/src/rabbit_recovery_indexes.erl
+++ b/src/rabbit_recovery_indexes.erl
@@ -57,11 +57,14 @@
-define(CLEAN_FILENAME, "clean.dot").
recover() ->
- supervisor:start_child(rabbit_sup,
- {?SERVER, {?MODULE, start_link, []},
- permanent, ?MAX_WAIT, worker,
- [?SERVER]}),
- ok.
+ case supervisor:start_child(rabbit_sup,
+ {?SERVER, {?MODULE, start_link, []},
+ permanent, ?MAX_WAIT, worker,
+ [?SERVER]}) of
+ {ok, _} -> ok;
+ {error, {already_started, _}} -> ok;
+ {error, _}=Err -> Err
+ end.
start_link() ->
gen_server:start_link(?MODULE, [], []).