From 5f8fc30b2c01735d8aaa22ef5618b0b424c228e9 Mon Sep 17 00:00:00 2001 From: Abhishek Srivastav Date: Tue, 3 Oct 2023 20:08:08 +0530 Subject: [PATCH] Added locks on request tracker before accessing fields (#120599) * Added locks on request tracker before accessing fields Unit test StatefulSetAutoDeletePVCEnabled has been flaking with DATARACE. Added lock on request tracker before accessing err field. * Addressed review comments for PR : Added locks on request tracker before accessing fields --- .../statefulset/stateful_set_control_test.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pkg/controller/statefulset/stateful_set_control_test.go b/pkg/controller/statefulset/stateful_set_control_test.go index d6bf9a78b14..f018646d3af 100644 --- a/pkg/controller/statefulset/stateful_set_control_test.go +++ b/pkg/controller/statefulset/stateful_set_control_test.go @@ -2429,6 +2429,12 @@ func (rt *requestTracker) reset() { rt.delay = 0 } +func (rt *requestTracker) getErr() error { + rt.Lock() + defer rt.Unlock() + return rt.err +} + func newRequestTracker(requests int, err error, after int) requestTracker { return requestTracker{ requests: requests, @@ -2474,7 +2480,7 @@ func (om *fakeObjectManager) CreatePod(ctx context.Context, pod *v1.Pod) error { defer om.createPodTracker.inc() if om.createPodTracker.errorReady() { defer om.createPodTracker.reset() - return om.createPodTracker.err + return om.createPodTracker.getErr() } pod.SetUID(types.UID(pod.Name + "-uid")) return om.podsIndexer.Update(pod) @@ -2492,7 +2498,7 @@ func (om *fakeObjectManager) DeletePod(pod *v1.Pod) error { defer om.deletePodTracker.inc() if om.deletePodTracker.errorReady() { defer om.deletePodTracker.reset() - return om.deletePodTracker.err + return om.deletePodTracker.getErr() } if key, err := controller.KeyFunc(pod); err != nil { return err