Skip to content

Commit 5f8fc30

Browse files
Added locks on request tracker before accessing fields (kubernetes#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
1 parent 389e60f commit 5f8fc30

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

pkg/controller/statefulset/stateful_set_control_test.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2429,6 +2429,12 @@ func (rt *requestTracker) reset() {
24292429
rt.delay = 0
24302430
}
24312431

2432+
func (rt *requestTracker) getErr() error {
2433+
rt.Lock()
2434+
defer rt.Unlock()
2435+
return rt.err
2436+
}
2437+
24322438
func newRequestTracker(requests int, err error, after int) requestTracker {
24332439
return requestTracker{
24342440
requests: requests,
@@ -2474,7 +2480,7 @@ func (om *fakeObjectManager) CreatePod(ctx context.Context, pod *v1.Pod) error {
24742480
defer om.createPodTracker.inc()
24752481
if om.createPodTracker.errorReady() {
24762482
defer om.createPodTracker.reset()
2477-
return om.createPodTracker.err
2483+
return om.createPodTracker.getErr()
24782484
}
24792485
pod.SetUID(types.UID(pod.Name + "-uid"))
24802486
return om.podsIndexer.Update(pod)
@@ -2492,7 +2498,7 @@ func (om *fakeObjectManager) DeletePod(pod *v1.Pod) error {
24922498
defer om.deletePodTracker.inc()
24932499
if om.deletePodTracker.errorReady() {
24942500
defer om.deletePodTracker.reset()
2495-
return om.deletePodTracker.err
2501+
return om.deletePodTracker.getErr()
24962502
}
24972503
if key, err := controller.KeyFunc(pod); err != nil {
24982504
return err

0 commit comments

Comments
 (0)