summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVlad Ionescu <vlad@lshift.net>2011-02-14 12:49:43 -0600
committerVlad Ionescu <vlad@lshift.net>2011-02-14 12:49:43 -0600
commit3f86e7afaf4bfe8f66e81ad96f491de48f159d84 (patch)
treea51d2ad7a906b16878eb5afca812fee7b8aeef96
parent91323e269a0e9f9fff5c5b4cbdeb43e3b6c9014c (diff)
downloadrabbitmq-server-3f86e7afaf4bfe8f66e81ad96f491de48f159d84.tar.gz
fixing upgrade from schema with missing tables
-rw-r--r--src/rabbit_mnesia.erl14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl
index 9bebae4b..c6441b68 100644
--- a/src/rabbit_mnesia.erl
+++ b/src/rabbit_mnesia.erl
@@ -552,9 +552,17 @@ create_local_table_copy(Tab, Type) ->
end,
ok.
-wait_for_replicated_tables() -> wait_for_tables(replicated_table_names()).
-
-wait_for_tables() -> wait_for_tables(table_names()).
+wait_for_replicated_tables() ->
+ AllTablesSet = ordsets:from_list(mnesia:system_info(tables)),
+ ReplicatedTablesSet = ordsets:from_list(replicated_table_names()),
+ wait_for_tables(ordsets:to_list(ordsets:intersection(AllTablesSet,
+ ReplicatedTablesSet))).
+
+wait_for_tables() ->
+ AllTablesSet = ordsets:from_list(mnesia:system_info(tables)),
+ RabbitTablesSet = ordsets:from_list(table_names()),
+ wait_for_tables(ordsets:to_list(ordsets:intersection(AllTablesSet,
+ RabbitTablesSet))).
wait_for_tables(TableNames) ->
case mnesia:wait_for_tables(TableNames, 30000) of