@@ -760,32 +760,32 @@ shrink_all(Node) ->
760
760
amqqueue :get_type (Q ) == quorum ,
761
761
lists :member (Node , amqqueue :get_quorum_nodes (Q ))].
762
762
763
- -spec grow (node (), binary (), binary (),
764
- all | even ) ->
763
+ -spec grow (node (), binary (), binary (), all | even ) ->
765
764
[{rabbit_amqqueue :name (),
766
765
{ok , pos_integer ()} | {error , pos_integer (), term ()}}].
767
766
grow (Node , VhostSpec , QueueSpec , Strategy ) ->
768
- ConnectedNodes = [ node () | nodes ()] ,
767
+ Running = rabbit_mnesia : cluster_nodes ( running ) ,
769
768
[begin
769
+ Size = length (amqqueue :get_quorum_nodes (Q )),
770
770
QName = amqqueue :get_name (Q ),
771
771
rabbit_log :info (" ~s : Adding member ~w " ,
772
772
[rabbit_misc :rs (QName ), Node ]),
773
- Size = length (amqqueue :get_quorum_nodes (Q )),
774
773
case add_member (Q , Node ) of
775
774
ok ->
776
775
{QName , {ok , Size + 1 }};
777
776
{error , Err } ->
778
- rabbit_log :warning (" ~s : Failed to add member ~w , Error ~w " ,
779
- [rabbit_misc :rs (QName ), Node , Err ]),
777
+ rabbit_log :warning (
778
+ " ~s : Failed to add member ~w , Error ~w " ,
779
+ [rabbit_misc :rs (QName ), Node , Err ]),
780
780
{QName , {error , Size , Err }}
781
781
end
782
782
end
783
783
|| Q <- rabbit_amqqueue :list (),
784
784
amqqueue :get_type (Q ) == quorum ,
785
785
% % don't add a member if there is already one on the node
786
786
not lists :member (Node , amqqueue :get_quorum_nodes (Q )),
787
- % % if the node isn't connected, best not to add it
788
- lists :member (Node , ConnectedNodes ),
787
+ % % node needs to be running
788
+ lists :member (Node , Running ),
789
789
matches_strategy (Strategy , amqqueue :get_quorum_nodes (Q )),
790
790
is_match (amqqueue :get_vhost (Q ), VhostSpec ) andalso
791
791
is_match (get_resource_name (amqqueue :get_name (Q )), QueueSpec ) ].
0 commit comments