Adds a longer retry period for the AE deferred output test.

There's some justification in the comments about this and a TODO to
improve this later.

Fixes #3668
This commit is contained in:
James Phillips 2017-11-08 18:10:13 -08:00
parent 444a345a3a
commit c52824bab7
No known key found for this signature in database
GPG Key ID: 77183E682AC5FC11
1 changed files with 11 additions and 2 deletions

View File

@ -1114,8 +1114,17 @@ func TestAgentAntiEntropy_Check_DeferSync(t *testing.T) {
}
}
}
// Wait for a deferred update
retry.Run(t, func(r *retry.R) {
// Wait for a deferred update. TODO (slackpad) This isn't a great test
// because we might be stuck in the random stagger from the full sync
// after the leader election (~3 seconds) so it's easy to exceed the
// default retry timeout here. Extending this makes the test a little
// less flaky, but this isn't very clean for this first deferred update
// since the full sync might pick it up, not the timer trigger. The
// good news is that the later update below should be well past the full
// sync so we are getting some coverage. We should rethink this a bit and
// rework the deferred update stuff to be more testable.
timer := &retry.Timer{Timeout: 6 * time.Second, Wait: 100 * time.Millisecond}
retry.RunWith(timer, t, func(r *retry.R) {
if err := a.RPC("Health.NodeChecks", &req, &checks); err != nil {
r.Fatal(err)
}