@@ -390,40 +390,36 @@ func TestRestoreReplicas(t *testing.T) {
390390
391391 require .NoError (t , tc .Restart ())
392392
393- // Find the leaseholder and follower. The restart may cause the Raft
394- // leadership to bounce around a bit, since we don't fully enable Raft
395- // prevote, so we loop for a bit until we find the leaseholder .
393+ // The restart may cause the Raft leadership and the lease to bounce around a
394+ // bit, so we loop until we find the leaseholder and able to propose the
395+ // second increment .
396396 incArgs = incrementArgs (key , 5 )
397- var followerStore * kvserver.Store
398397 testutils .SucceedsSoon (t , func () error {
399398 var pErr * kvpb.Error
400399 for i := 0 ; i < tc .NumServers (); i ++ {
401400 _ , pErr = kv .SendWrapped (ctx , tc .GetFirstStoreFromServer (t , i ).TestSender (), incArgs )
402401 if pErr == nil {
403- followerStore = tc .GetFirstStoreFromServer (t , 1 - i )
404- break
402+ return nil
405403 }
406404 require .IsType (t , & kvpb.NotLeaseHolderError {}, pErr .GetDetail ())
407405 }
408406 return pErr .GoError ()
409407 })
410408
411- // The follower should now return a NLHE.
412- _ , pErr = kv .SendWrapped (ctx , followerStore .TestSender (), incArgs )
413- require .Error (t , pErr .GoError ())
414- require .IsType (t , & kvpb.NotLeaseHolderError {}, pErr .GetDetail ())
415-
416- testutils .SucceedsSoon (t , func () error {
417- getArgs := getArgs (key )
418- if reply , err := kv .SendWrappedWith (ctx , followerStore .TestSender (), kvpb.Header {
419- ReadConsistency : kvpb .INCONSISTENT ,
420- }, getArgs ); err != nil {
421- return errors .Errorf ("failed to read data: %s" , err )
422- } else if e , v := int64 (28 ), mustGetInt (reply .(* kvpb.GetResponse ).Value ); v != e {
423- return errors .Errorf ("failed to read correct data: expected %d, got %d" , e , v )
424- }
425- return nil
426- })
409+ // Both servers should eventually observe the new value.
410+ for i := 0 ; i < tc .NumServers (); i ++ {
411+ testutils .SucceedsSoon (t , func () error {
412+ getArgs := getArgs (key )
413+ if reply , err := kv .SendWrappedWith (ctx , tc .GetFirstStoreFromServer (t , i ).TestSender (), kvpb.Header {
414+ ReadConsistency : kvpb .INCONSISTENT ,
415+ }, getArgs ); err != nil {
416+ return errors .Errorf ("failed to read data: %s" , err )
417+ } else if e , v := int64 (28 ), mustGetInt (reply .(* kvpb.GetResponse ).Value ); v != e {
418+ return errors .Errorf ("failed to read correct data: expected %d, got %d" , e , v )
419+ }
420+ return nil
421+ })
422+ }
427423
428424 validate := func (s * kvserver.Store ) {
429425 repl := s .LookupReplica (key )
0 commit comments