From 2937656f8e28ec1b1a8a2586fe85d5c02da64d46 Mon Sep 17 00:00:00 2001 From: James Phillips Date: Wed, 8 Nov 2017 18:10:13 -0800 Subject: [PATCH] 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 --- agent/local/state_test.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/agent/local/state_test.go b/agent/local/state_test.go index 166b8155e9..a6e9e1738e 100644 --- a/agent/local/state_test.go +++ b/agent/local/state_test.go @@ -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) }