diff options
author | Vlad Ionescu <vlad@lshift.net> | 2011-02-14 12:49:43 -0600 |
---|---|---|
committer | Vlad Ionescu <vlad@lshift.net> | 2011-02-14 12:49:43 -0600 |
commit | 3f86e7afaf4bfe8f66e81ad96f491de48f159d84 (patch) | |
tree | a51d2ad7a906b16878eb5afca812fee7b8aeef96 | |
parent | 91323e269a0e9f9fff5c5b4cbdeb43e3b6c9014c (diff) | |
download | rabbitmq-server-3f86e7afaf4bfe8f66e81ad96f491de48f159d84.tar.gz |
fixing upgrade from schema with missing tables
-rw-r--r-- | src/rabbit_mnesia.erl | 14 |
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 |