fix: clean self node's cluster commit when leave cluster

This commit is contained in:
zhongwencool 2024-04-08 10:21:00 +08:00
parent e11c4a9c83
commit a1495689c0
2 changed files with 4 additions and 1 deletions

View File

@ -224,6 +224,7 @@ reset() -> gen_server:call(?MODULE, reset).
status() ->
transaction(fun ?MODULE:trans_status/0, []).
%% DO NOT delete this on_leave_clean/0, It's use when rpc before v560.
on_leave_clean() ->
on_leave_clean(node()).
@ -367,7 +368,7 @@ handle_call({fast_forward_to_commit, ToTnxId}, _From, State) ->
NodeId = do_fast_forward_to_commit(ToTnxId, State),
{reply, NodeId, State, catch_up(State)};
handle_call(on_leave, _From, State) ->
{atomic, ok} = transaction(fun ?MODULE:on_leave_clean/0, []),
{atomic, ok} = transaction(fun ?MODULE:on_leave_clean/1, [node()]),
{reply, ok, State#{is_leaving := true}};
handle_call(_, _From, State) ->
{reply, ok, State, catch_up(State)}.

View File

@ -0,0 +1,2 @@
Fixed cluster_rpc_commit tnx_id was not properly cleanup after 'cluster leave' on replicator nodes,
The tnx_id of the core node will be deleted before, resulting in the failure of the core node update configuration.