diff options
author | Vlad Alexandru Ionescu <vlad@rabbitmq.com> | 2011-02-20 16:37:07 -0600 |
---|---|---|
committer | Vlad Alexandru Ionescu <vlad@rabbitmq.com> | 2011-02-20 16:37:07 -0600 |
commit | 95f2121cc5e3da61960c06ab95258074a26b531b (patch) | |
tree | a5d75de04e8ae61cbeb7a48850790ad9dac0dc00 | |
parent | 3a09b6284ebe1395de7c02a225f88facc8303073 (diff) | |
download | rabbitmq-server-95f2121cc5e3da61960c06ab95258074a26b531b.tar.gz |
less wait_for_tables
-rw-r--r-- | src/rabbit_mnesia.erl | 7 | ||||
-rw-r--r-- | src/rabbit_upgrade.erl | 1 | ||||
-rw-r--r-- | src/rabbit_upgrade_functions.erl | 5 |
3 files changed, 8 insertions, 5 deletions
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl index eac7dd14..8b8f2f2d 100644 --- a/src/rabbit_mnesia.erl +++ b/src/rabbit_mnesia.erl @@ -20,7 +20,7 @@ -export([ensure_mnesia_dir/0, dir/0, status/0, init/0, is_db_empty/0, cluster/1, force_cluster/1, reset/0, force_reset/0, is_clustered/0, running_clustered_nodes/0, all_clustered_nodes/0, - empty_ram_only_tables/0, copy_db/1]). + empty_ram_only_tables/0, copy_db/1, wait_for_tables/1]). -export([table_names/0]). @@ -54,6 +54,7 @@ -spec(empty_ram_only_tables/0 :: () -> 'ok'). -spec(create_tables/0 :: () -> 'ok'). -spec(copy_db/1 :: (file:filename()) -> rabbit_types:ok_or_error(any())). +-spec(wait_for_tables/1 :: ([atom()]) -> 'ok'). -endif. @@ -386,7 +387,6 @@ init_db(ClusterNodes, Force) -> case {Nodes, mnesia:system_info(use_dir), all_clustered_nodes()} of {[], true, [_]} -> %% True single disc node, attempt upgrade - ok = wait_for_tables(), case rabbit_upgrade:maybe_upgrade() of ok -> ok = wait_for_tables(), ensure_schema_ok(); @@ -490,8 +490,7 @@ copy_db(Destination) -> mnesia:stop(), case rabbit_misc:recursive_copy(dir(), Destination) of ok -> - rabbit_misc:ensure_ok(mnesia:start(), cannot_start_mnesia), - ok = wait_for_tables(); + rabbit_misc:ensure_ok(mnesia:start(), cannot_start_mnesia); {error, E} -> {error, E} end. diff --git a/src/rabbit_upgrade.erl b/src/rabbit_upgrade.erl index b0a71523..89acc10c 100644 --- a/src/rabbit_upgrade.erl +++ b/src/rabbit_upgrade.erl @@ -98,7 +98,6 @@ vertices(Module, Steps) -> edges(_Module, Steps) -> [{Require, StepName} || {StepName, Requires} <- Steps, Require <- Requires]. - unknown_heads(Heads, G) -> [H || H <- Heads, digraph:vertex(G, H) =:= false]. diff --git a/src/rabbit_upgrade_functions.erl b/src/rabbit_upgrade_functions.erl index 36d1f2dc..d6a79590 100644 --- a/src/rabbit_upgrade_functions.erl +++ b/src/rabbit_upgrade_functions.erl @@ -49,6 +49,7 @@ %% point. remove_user_scope() -> + rabbit_mnesia:wait_for_tables([rabbit_user_permission]), transform( rabbit_user_permission, fun ({user_permission, UV, {permission, _Scope, Conf, Write, Read}}) -> @@ -57,6 +58,7 @@ remove_user_scope() -> [user_vhost, permission]). hash_passwords() -> + rabbit_mnesia:wait_for_tables([rabbit_user]), transform( rabbit_user, fun ({user, Username, Password, IsAdmin}) -> @@ -66,6 +68,7 @@ hash_passwords() -> [username, password_hash, is_admin]). add_ip_to_listener() -> + rabbit_mnesia:wait_for_tables([rabbit_listener]), transform( rabbit_listener, fun ({listener, Node, Protocol, Host, Port}) -> @@ -75,6 +78,7 @@ add_ip_to_listener() -> internal_exchanges() -> Tables = [rabbit_exchange, rabbit_durable_exchange], + rabbit_mnesia:wait_for_tables(Tables), AddInternalFun = fun ({exchange, Name, Type, Durable, AutoDelete, Args}) -> {exchange, Name, Type, Durable, AutoDelete, false, Args} @@ -86,6 +90,7 @@ internal_exchanges() -> ok. user_to_internal_user() -> + rabbit_mnesia:wait_for_tables([rabbit_user]), transform( rabbit_user, fun({user, Username, PasswordHash, IsAdmin}) -> |