Skip to content

Commit

Permalink
raft: update prevHardSt on Ready accept, not advance
Browse files Browse the repository at this point in the history
This commit updates the `RawNode`'s `prevHardSt` to the new HardState in
`acceptReady` instead of on `Advance`. This aligns the handling of
`prevHardSt` with that of `prevSoftSt` (and other fields like `msgs`)
and simplifies the logic in `Advance`.

Signed-off-by: Nathan VanBenschoten <[email protected]>
  • Loading branch information
nvanbenschoten committed Sep 29, 2022
1 parent 4513671 commit 9a03632
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions raft/rawnode.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,9 @@ func (rn *RawNode) acceptReady(rd Ready) {
if rd.SoftState != nil {
rn.prevSoftSt = rd.SoftState
}
if !IsEmptyHardState(rd.HardState) {
rn.prevHardSt = rd.HardState
}
if len(rd.ReadStates) != 0 {
rn.raft.readStates = nil
}
Expand Down Expand Up @@ -172,9 +175,6 @@ func (rn *RawNode) HasReady() bool {
// Advance notifies the RawNode that the application has applied and saved progress in the
// last Ready results.
func (rn *RawNode) Advance(rd Ready) {
if !IsEmptyHardState(rd.HardState) {
rn.prevHardSt = rd.HardState
}
rn.raft.advance(rd)
}

Expand Down

0 comments on commit 9a03632

Please sign in to comment.