aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHolger Weiss <holger@zedat.fu-berlin.de>2014-06-12 11:00:22 +0200
committerHolger Weiss <holger@zedat.fu-berlin.de>2014-06-12 11:00:22 +0200
commit1ef2dd45f38fa17b7df59d80faf6cf44dff9222e (patch)
tree06d605f091657f80b7d408b516a798da8aca24a6 /src
parentMerge pull request #237 from weiss/log-config-path (diff)
Check for Mnesia node name mismatches
Log a proper error message if the node running ejabberd doesn't own the Mnesia database.
Diffstat (limited to 'src')
-rw-r--r--src/ejabberd_app.erl12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/ejabberd_app.erl b/src/ejabberd_app.erl
index 8106b7b0d..6b0a85be8 100644
--- a/src/ejabberd_app.erl
+++ b/src/ejabberd_app.erl
@@ -107,6 +107,18 @@ loop() ->
end.
db_init() ->
+ MyNode = node(),
+ DbNodes = mnesia:system_info(db_nodes),
+ case lists:member(MyNode, DbNodes) of
+ true ->
+ ok;
+ false ->
+ ?CRITICAL_MSG("Node name mismatch: I'm [~s], "
+ "the database is owned by ~p", [MyNode, DbNodes]),
+ ?CRITICAL_MSG("Either set ERLANG_NODE in ejabberdctl.cfg "
+ "or change node name in Mnesia", []),
+ erlang:error(node_name_mismatch)
+ end,
case mnesia:system_info(extra_db_nodes) of
[] ->
mnesia:create_schema([node()]);