mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +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:
		
				
					committed by
					
						
						GitHub
					
				
			
			
				
	
			
			
			
						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
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user