Skip to content

Commit c36328c

Browse files
fix: only refresh election timer when vote is granted
1 parent a724852 commit c36328c

1 file changed

Lines changed: 4 additions & 5 deletions

File tree

  • src/cluster/DotNext.Net.Cluster/Net/Cluster/Consensus/Raft

src/cluster/DotNext.Net.Cluster/Net/Cluster/Consensus/Raft/RaftCluster.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -822,11 +822,7 @@ protected async ValueTask<Result<bool>> VoteAsync(ClusterMemberId sender, long s
822822
Leader = null;
823823
await StepDownAsync(senderTerm, consensusReached: false).ConfigureAwait(false);
824824
}
825-
else if (state is RefreshableState<TMember> followerOrStandbyState)
826-
{
827-
followerOrStandbyState.Refresh();
828-
}
829-
else
825+
else if (state is not RefreshableState<TMember>)
830826
{
831827
goto exit;
832828
}
@@ -835,6 +831,9 @@ protected async ValueTask<Result<bool>> VoteAsync(ClusterMemberId sender, long s
835831
{
836832
await auditTrail.UpdateVotedForAsync(sender, tokenSource.Token).ConfigureAwait(false);
837833
result = result with { Value = true };
834+
835+
if (state is RefreshableState<TMember> followerOrStandbyState)
836+
followerOrStandbyState.Refresh();
838837
}
839838
}
840839
catch (OperationCanceledException e) when (e.CancellationToken == tokenSource.Token)

0 commit comments

Comments
 (0)