Merge pull request #130316 from googs1025/flake/TestSchedulerGuaranteeNonNilNodeInSchedulingCycle

flake(scheduler): fix allWaitSchedulingPods data race failed
This commit is contained in:
Kubernetes Prow Robot 2025-02-20 21:04:26 -08:00 committed by GitHub
commit de7708f06e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -638,17 +638,22 @@ func TestSchedulerGuaranteeNonNilNodeInSchedulingCycle(t *testing.T) {
for i := 0; i < waitSchedulingPodNumber; i++ { for i := 0; i < waitSchedulingPodNumber; i++ {
allWaitSchedulingPods.Insert(fmt.Sprintf("pod%d", i)) allWaitSchedulingPods.Insert(fmt.Sprintf("pod%d", i))
} }
var wg sync.WaitGroup var (
wg sync.WaitGroup
mu sync.Mutex
)
wg.Add(waitSchedulingPodNumber) wg.Add(waitSchedulingPodNumber)
stopFn, err := broadcaster.StartEventWatcher(func(obj runtime.Object) { stopFn, err := broadcaster.StartEventWatcher(func(obj runtime.Object) {
e, ok := obj.(*eventsv1.Event) e, ok := obj.(*eventsv1.Event)
if !ok || (e.Reason != "Scheduled" && e.Reason != "FailedScheduling") { if !ok || (e.Reason != "Scheduled" && e.Reason != "FailedScheduling") {
return return
} }
mu.Lock()
if allWaitSchedulingPods.Has(e.Regarding.Name) { if allWaitSchedulingPods.Has(e.Regarding.Name) {
wg.Done() wg.Done()
allWaitSchedulingPods.Delete(e.Regarding.Name) allWaitSchedulingPods.Delete(e.Regarding.Name)
} }
mu.Unlock()
}) })
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)