diff options
| -rw-r--r-- | src/rabbit_mirror_queue_misc.erl | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/rabbit_mirror_queue_misc.erl b/src/rabbit_mirror_queue_misc.erl index ebaae99539..5325f1be20 100644 --- a/src/rabbit_mirror_queue_misc.erl +++ b/src/rabbit_mirror_queue_misc.erl @@ -236,8 +236,17 @@ suggested_queue_nodes(Q) -> _ -> MNode0 end, suggested_queue_nodes(policy(<<"ha-mode">>, Q), policy(<<"ha-params">>, Q), - {MNode, SNodes}, - rabbit_mnesia:running_clustered_nodes()). + {MNode, SNodes}, clusterable_nodes()). + +clusterable_nodes() -> + %% We may end up here via on_node_up/0, in which case we are still + %% booting - rabbit_mnesia:running_clustered_nodes/0 will report + %% us as not running. + Nodes = rabbit_mnesia:running_clustered_nodes(), + case lists:member(node(), Nodes) of + true -> Nodes; + false -> [node() | Nodes] + end. policy(Policy, Q) -> case rabbit_policy:get(Policy, Q) of |
