From d06f1034db34a3cee461815dbe15b84569955148 Mon Sep 17 00:00:00 2001 From: Frederic Branczyk Date: Tue, 18 Feb 2020 09:24:48 +0100 Subject: [PATCH] discovery/kubernetes: Fix race in test setup Signed-off-by: Frederic Branczyk --- discovery/kubernetes/kubernetes_test.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/discovery/kubernetes/kubernetes_test.go b/discovery/kubernetes/kubernetes_test.go index 2270bc611..7466bdef1 100644 --- a/discovery/kubernetes/kubernetes_test.go +++ b/discovery/kubernetes/kubernetes_test.go @@ -65,6 +65,21 @@ func (d k8sDiscoveryTest) Run(t *testing.T) { // Run discoverer and start a goroutine to read results. go d.discovery.Run(ctx, ch) + + // Ensure that discovery has a discoverer set. This prevents a race + // condition where the above go routine may or may not have set a + // discoverer yet. + for { + dis := d.discovery.(*Discovery) + dis.RLock() + l := len(dis.discoverers) + dis.RUnlock() + if l > 0 { + break + } + time.Sleep(10 * time.Millisecond) + } + resChan := make(chan map[string]*targetgroup.Group) go readResultWithTimeout(t, ch, d.expectedMaxItems, time.Second, resChan)