summaryrefslogtreecommitdiff
path: root/src
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
commit68889272e0d87742060e886a5fbdede8c4b64a77 (patch)
tree91496215dbaeaa70b63af4e4170a5dfe13770c46 /src
parent744591f820f56cf13a6d478160c5b6dca4e5ab64 (diff)
downloadrabbitmq-server-git-68889272e0d87742060e886a5fbdede8c4b64a77.tar.gz
Handle recovery index startup errors cleanly
Diffstat (limited to 'src')
-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 460aaa1c7c..de72aef675 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, [], []).