diff options
| author | Matthew Sackman <matthew@lshift.net> | 2009-06-30 18:04:11 +0100 |
|---|---|---|
| committer | Matthew Sackman <matthew@lshift.net> | 2009-06-30 18:04:11 +0100 |
| commit | d42a1dd62a29a31a1cd79685a1053c9af2af0190 (patch) | |
| tree | 9be88d8cfbf961e3fb2a4e88cdcfdcf6a87c364d /src | |
| parent | 5934ddc48aa095c95eb9dd8260a74c72614d5673 (diff) | |
| download | rabbitmq-server-git-d42a1dd62a29a31a1cd79685a1053c9af2af0190.tar.gz | |
Well, this seems to work.
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_mnesia.erl | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl index 3681af0aad..149501f8b3 100644 --- a/src/rabbit_mnesia.erl +++ b/src/rabbit_mnesia.erl @@ -166,6 +166,9 @@ non_replicated_table_definitions() -> table_names() -> [Tab || {Tab, _} <- table_definitions()]. +replicated_table_names() -> + [Tab || {Tab, _} <- replicated_table_definitions()]. + dir() -> mnesia:system_info(directory). ensure_mnesia_dir() -> @@ -298,10 +301,10 @@ init_db(ClusterNodes) -> true -> disc; false -> ram end, + ok = wait_for_replicated_tables(), ok = create_local_table_copy(schema, disc_copies), ok = create_local_non_replicated_table_copies(disc), - ok = create_local_replicated_table_copies(TableCopyType), - ok = wait_for_tables(); + ok = create_local_replicated_table_copies(TableCopyType); {error, Reason} -> %% one reason we may end up here is if we try to join %% nodes together that are currently running standalone or @@ -408,10 +411,16 @@ create_local_table_copy(Tab, Type) -> end, ok. -wait_for_tables() -> +wait_for_replicated_tables() -> + wait_for_tables(replicated_table_names()). + +wait_for_tables() -> + wait_for_tables(table_names()). + +wait_for_tables(TableNames) -> case check_schema_integrity() of ok -> - case mnesia:wait_for_tables(table_names(), 30000) of + case mnesia:wait_for_tables(TableNames, 30000) of ok -> ok; {timeout, BadTabs} -> throw({error, {timeout_waiting_for_tables, BadTabs}}); |
