Check for Mnesia node name mismatches

Log a proper error message if the node running ejabberd doesn't own the
Mnesia database.
This commit is contained in:
Holger Weiss 2014-06-12 11:00:22 +02:00
parent 4b82a38cf7
commit 1ef2dd45f3
1 changed files with 12 additions and 0 deletions

View File

@ -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()]);