mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-01 07:47:56 +00:00
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
This commit is contained in:
parent
389e60fb2e
commit
5f8fc30b2c
@ -2429,6 +2429,12 @@ func (rt *requestTracker) reset() {
|
|||||||
rt.delay = 0
|
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 {
|
func newRequestTracker(requests int, err error, after int) requestTracker {
|
||||||
return requestTracker{
|
return requestTracker{
|
||||||
requests: requests,
|
requests: requests,
|
||||||
@ -2474,7 +2480,7 @@ func (om *fakeObjectManager) CreatePod(ctx context.Context, pod *v1.Pod) error {
|
|||||||
defer om.createPodTracker.inc()
|
defer om.createPodTracker.inc()
|
||||||
if om.createPodTracker.errorReady() {
|
if om.createPodTracker.errorReady() {
|
||||||
defer om.createPodTracker.reset()
|
defer om.createPodTracker.reset()
|
||||||
return om.createPodTracker.err
|
return om.createPodTracker.getErr()
|
||||||
}
|
}
|
||||||
pod.SetUID(types.UID(pod.Name + "-uid"))
|
pod.SetUID(types.UID(pod.Name + "-uid"))
|
||||||
return om.podsIndexer.Update(pod)
|
return om.podsIndexer.Update(pod)
|
||||||
@ -2492,7 +2498,7 @@ func (om *fakeObjectManager) DeletePod(pod *v1.Pod) error {
|
|||||||
defer om.deletePodTracker.inc()
|
defer om.deletePodTracker.inc()
|
||||||
if om.deletePodTracker.errorReady() {
|
if om.deletePodTracker.errorReady() {
|
||||||
defer om.deletePodTracker.reset()
|
defer om.deletePodTracker.reset()
|
||||||
return om.deletePodTracker.err
|
return om.deletePodTracker.getErr()
|
||||||
}
|
}
|
||||||
if key, err := controller.KeyFunc(pod); err != nil {
|
if key, err := controller.KeyFunc(pod); err != nil {
|
||||||
return err
|
return err
|
||||||
|
Loading…
Reference in New Issue
Block a user