@@ -760,32 +760,32 @@ shrink_all(Node) ->
760760 amqqueue :get_type (Q ) == quorum ,
761761 lists :member (Node , amqqueue :get_quorum_nodes (Q ))].
762762
763- -spec grow (node (), binary (), binary (),
764- all | even ) ->
763+ -spec grow (node (), binary (), binary (), all | even ) ->
765764 [{rabbit_amqqueue :name (),
766765 {ok , pos_integer ()} | {error , pos_integer (), term ()}}].
767766grow (Node , VhostSpec , QueueSpec , Strategy ) ->
768- ConnectedNodes = [ node () | nodes ()] ,
767+ Running = rabbit_mnesia : cluster_nodes ( running ) ,
769768 [begin
769+ Size = length (amqqueue :get_quorum_nodes (Q )),
770770 QName = amqqueue :get_name (Q ),
771771 rabbit_log :info (" ~s : Adding member ~w " ,
772772 [rabbit_misc :rs (QName ), Node ]),
773- Size = length (amqqueue :get_quorum_nodes (Q )),
774773 case add_member (Q , Node ) of
775774 ok ->
776775 {QName , {ok , Size + 1 }};
777776 {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 ]),
780780 {QName , {error , Size , Err }}
781781 end
782782 end
783783 || Q <- rabbit_amqqueue :list (),
784784 amqqueue :get_type (Q ) == quorum ,
785785 % % don't add a member if there is already one on the node
786786 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 ),
789789 matches_strategy (Strategy , amqqueue :get_quorum_nodes (Q )),
790790 is_match (amqqueue :get_vhost (Q ), VhostSpec ) andalso
791791 is_match (get_resource_name (amqqueue :get_name (Q )), QueueSpec ) ].
0 commit comments