Skip to content

Commit f48962d

Browse files
committed
Update nodes entry on make_ra_conf
1 parent 35ef780 commit f48962d

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

deps/rabbit/src/rabbit_quorum_queue.erl

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1427,20 +1427,20 @@ do_add_member(Q0, Node, Membership, Timeout)
14271427
%% TODO parallel calls might crash this, or add a duplicate in quorum_nodes
14281428
ServerId = {RaName, Node},
14291429
Members = members(Q0),
1430-
QTypeState0 = #{nodes := _Nodes}= amqqueue:get_type_state(Q0),
1430+
QTypeState0 = #{nodes := Nodes} = amqqueue:get_type_state(Q0),
14311431
NewRaUId = ra:new_uid(ra_lib:to_binary(RaName)),
1432-
%QTypeState = case Nodes of
1433-
% L when is_list(L) ->
1434-
% %% Queue is not aware of node to uid mapping, just add the new node
1435-
% QTypeState0#{nodes := lists:usort([Node | Nodes])};
1436-
% #{Node := _} ->
1437-
% %% Queue is aware and uid for targeted node exists, do nothing
1438-
% QTypeState0;
1439-
% _ ->
1440-
% %% Queue is aware but current node has no UId, regen uid
1441-
% QTypeState0#{nodes := Nodes#{Node => NewRaUId}}
1442-
%end,
1443-
Q = amqqueue:set_type_state(Q0, QTypeState0),
1432+
QTypeState = case Nodes of
1433+
L when is_list(L) ->
1434+
%% Queue is not aware of node to uid mapping, just add the new node
1435+
QTypeState0#{nodes => lists:usort([Node | Nodes])};
1436+
#{Node := _} ->
1437+
%% Queue is aware and uid for targeted node exists, do nothing
1438+
QTypeState0;
1439+
_ ->
1440+
%% Queue is aware but current node has no UId, regen uid
1441+
QTypeState0#{nodes => Nodes#{Node => NewRaUId}}
1442+
end,
1443+
Q = amqqueue:set_type_state(Q0, QTypeState),
14441444
MachineVersion = erpc_call(Node, rabbit_fifo, version, [], infinity),
14451445
Conf = make_ra_conf(Q, ServerId, Membership, MachineVersion),
14461446
case ra:start_server(?RA_SYSTEM, Conf) of
@@ -1458,7 +1458,7 @@ do_add_member(Q0, Node, Membership, Timeout)
14581458
Q2 = update_type_state(
14591459
Q1, fun(#{nodes := NodesList} = Ts) when is_list(NodesList) ->
14601460
Ts#{nodes => lists:usort([Node | NodesList])};
1461-
(#{nodes := #{Node := _} = _NodesMap} = Ts) ->
1461+
(#{nodes := #{Node := _}} = Ts) ->
14621462
Ts;
14631463
(#{nodes := NodesMap} = Ts) when is_map(NodesMap) ->
14641464
Ts#{nodes => maps:put(Node, NewRaUId, NodesMap)}
@@ -2047,7 +2047,7 @@ make_ra_conf(Q, ServerId, TickTimeout,
20472047
[{ClusterName, _} | _] = Members = members(Q),
20482048
{_, Node} = ServerId,
20492049
UId = case amqqueue:get_type_state(Q) of
2050-
#{uids := #{Node := Id}} ->
2050+
#{nodes := #{Node := Id}} ->
20512051
Id;
20522052
_ ->
20532053
%% Queue was declared on an older version of RabbitMQ

0 commit comments

Comments
 (0)