diff options
author | Dan Gudmundsson <dgud@erlang.org> | 2011-05-12 10:11:04 +0200 |
---|---|---|
committer | Dan Gudmundsson <dgud@erlang.org> | 2011-05-12 10:11:04 +0200 |
commit | 0bb1fa0f175f00b57f36070ab90a944b700da882 (patch) | |
tree | 4d677a36dbedfcf084b9824dc0f09a373b8fb35b | |
parent | f4a71c8cf2a98b80e309fa824bc8d6cfad869530 (diff) | |
parent | afd3afeecb987de76bba24558a5c30b0ee4bdd2c (diff) | |
download | erlang-0bb1fa0f175f00b57f36070ab90a944b700da882.tar.gz |
Merge branch 'dgud/mnesia/startup-timing' into dev
* dgud/mnesia/startup-timing:
Use recover_nodes when deciding alive nodes
-rw-r--r-- | lib/mnesia/src/mnesia_schema.erl | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/mnesia/src/mnesia_schema.erl b/lib/mnesia/src/mnesia_schema.erl index d1d892a387..f33a6c7a84 100644 --- a/lib/mnesia/src/mnesia_schema.erl +++ b/lib/mnesia/src/mnesia_schema.erl @@ -1734,7 +1734,10 @@ prepare_op(_Tid, {op, announce_im_running, Node, SchemaDef, Running, RemoteRunni Node == node() -> %% Announce has already run on local node ignore; %% from do_merge_schema true -> - NewNodes = mnesia_lib:uniq(Running++RemoteRunning) -- val({current,db_nodes}), + %% If a node has restarted it may still linger in db_nodes, + %% but have been removed from recover_nodes + Current = mnesia_lib:intersect(val({current,db_nodes}), [node()|val(recover_nodes)]), + NewNodes = mnesia_lib:uniq(Running++RemoteRunning) -- Current, mnesia_lib:set(prepare_op, {announce_im_running,NewNodes}), announce_im_running(NewNodes, SchemaCs) end, |