From 3f0de10d86fb421b3313793fcce8d5d64a83dfb2 Mon Sep 17 00:00:00 2001 From: Kris Date: Tue, 13 Feb 2018 11:32:36 -0800 Subject: [PATCH] Add a test case for the race in #59822 Kubernetes-commit: be482ad51c21d493f4b83de9aa06c511a552b5b1 --- tools/cache/shared_informer_test.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tools/cache/shared_informer_test.go b/tools/cache/shared_informer_test.go index 6f49d167..22e4a90d 100644 --- a/tools/cache/shared_informer_test.go +++ b/tools/cache/shared_informer_test.go @@ -251,3 +251,15 @@ func TestResyncCheckPeriod(t *testing.T) { t.Errorf("expected %d, got %d", e, a) } } + +// verify that https://github.com/kubernetes/kubernetes/issues/59822 is fixed +func TestSharedInformerInitializationRace(t *testing.T) { + source := fcache.NewFakeControllerSource() + informer := NewSharedInformer(source, &v1.Pod{}, 1*time.Second).(*sharedIndexInformer) + listener := newTestListener("raceListener", 0) + + stop := make(chan struct{}) + go informer.AddEventHandlerWithResyncPeriod(listener, listener.resyncPeriod) + go informer.Run(stop) + close(stop) +}