From 04b048dcec637f7e69fac5e5f2a89abcfa7ce4fd Mon Sep 17 00:00:00 2001 From: googs1025 Date: Thu, 20 Feb 2025 22:37:06 +0800 Subject: [PATCH] flake(scheduler): fix allWaitSchedulingPods data race failed --- pkg/scheduler/schedule_one_test.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkg/scheduler/schedule_one_test.go b/pkg/scheduler/schedule_one_test.go index 6e628fa1b71..b5dc40e91e3 100644 --- a/pkg/scheduler/schedule_one_test.go +++ b/pkg/scheduler/schedule_one_test.go @@ -638,17 +638,22 @@ func TestSchedulerGuaranteeNonNilNodeInSchedulingCycle(t *testing.T) { for i := 0; i < waitSchedulingPodNumber; i++ { allWaitSchedulingPods.Insert(fmt.Sprintf("pod%d", i)) } - var wg sync.WaitGroup + var ( + wg sync.WaitGroup + mu sync.Mutex + ) wg.Add(waitSchedulingPodNumber) stopFn, err := broadcaster.StartEventWatcher(func(obj runtime.Object) { e, ok := obj.(*eventsv1.Event) if !ok || (e.Reason != "Scheduled" && e.Reason != "FailedScheduling") { return } + mu.Lock() if allWaitSchedulingPods.Has(e.Regarding.Name) { wg.Done() allWaitSchedulingPods.Delete(e.Regarding.Name) } + mu.Unlock() }) if err != nil { t.Fatal(err)