Skip to content

Commit

Permalink
kvserver: deflake TestNewRangefeedForceLeaseRetry
Browse files Browse the repository at this point in the history
This commit lets the test waits for N1's view of N2's lease expiration
to match N2's view. This is important in the rare case where N1 tries to
increase N2's epoch, but it has a stale view of the lease expiration
time.

Fixes: #131808

Release note: None
  • Loading branch information
iskettaneh committed Oct 3, 2024
1 parent cdc30a5 commit 3439745
Showing 1 changed file with 15 additions and 4 deletions.
19 changes: 15 additions & 4 deletions pkg/kv/kvserver/replica_rangefeed_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1678,13 +1678,24 @@ func TestNewRangefeedForceLeaseRetry(t *testing.T) {
// Expire the lease. Given that the Raft leadership is on n2, only n2 will be
// eligible to acquire a new lease.
log.Infof(ctx, "test expiring lease")
nl := n2.NodeLiveness().(*liveness.NodeLiveness)
resumeHeartbeats := nl.PauseAllHeartbeatsForTest()
n2Liveness, ok := nl.Self()
nl2 := n2.NodeLiveness().(*liveness.NodeLiveness)
resumeHeartbeats := nl2.PauseAllHeartbeatsForTest()
n2Liveness, ok := nl2.Self()
require.True(t, ok)
manualClock.Increment(n2Liveness.Expiration.ToTimestamp().Add(1, 0).WallTime - manualClock.UnixNano())
atomic.StoreInt64(&rejectExtraneousRequests, 1)
// Ask another node to increment n2's liveness record.

// Ask another node to increment n2's liveness record, but first, wait until
// n1's liveness state is the same as n2's. Otherwise, the epoch below might
// get rejected because of mismatching liveness records.
testutils.SucceedsSoon(t, func() error {
nl1 := n1.NodeLiveness().(*liveness.NodeLiveness)
n2LivenessFromN1, _ := nl1.GetLiveness(n2.NodeID())
if n2Liveness != n2LivenessFromN1.Liveness {
return errors.Errorf("waiting for node 2 liveness to converge on both nodes 1 and 2")
}
return nil
})
require.NoError(t, n1.NodeLiveness().(*liveness.NodeLiveness).IncrementEpoch(ctx, n2Liveness))

resumeHeartbeats()
Expand Down

0 comments on commit 3439745

Please sign in to comment.