From 0c82e9ad8718dffc85fe43f728498ee39bbba25d Mon Sep 17 00:00:00 2001 From: Aleksandr Nogikh Date: Wed, 11 Sep 2024 12:04:41 +0200 Subject: pkg/manager: ensure NeedRepro() is always called Always check it before starting the actual reproduction. --- pkg/manager/repro.go | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'pkg/manager') diff --git a/pkg/manager/repro.go b/pkg/manager/repro.go index 038980624..8a6b1331d 100644 --- a/pkg/manager/repro.go +++ b/pkg/manager/repro.go @@ -198,13 +198,7 @@ func (r *ReproLoop) Loop(ctx context.Context) { for { crash := r.popCrash() - for crash == nil { - select { - case <-r.pingQueue: - crash = r.popCrash() - case <-ctx.Done(): - return - } + for { if crash != nil && !r.mgr.NeedRepro(crash) { crash = nil // Now we might not need that many VMs. @@ -212,6 +206,15 @@ func (r *ReproLoop) Loop(ctx context.Context) { r.adjustPoolSizeLocked() r.mu.Unlock() } + if crash != nil { + break + } + select { + case <-r.pingQueue: + crash = r.popCrash() + case <-ctx.Done(): + return + } } // Now wait until we can schedule another runner. -- cgit mrf-deployment