diff options
| author | Aleksandr Nogikh <nogikh@google.com> | 2025-04-11 14:30:29 +0200 |
|---|---|---|
| committer | Aleksandr Nogikh <nogikh@google.com> | 2025-04-15 08:18:26 +0000 |
| commit | 80d0e54b1ffe18e2e65923966dadc7e344dba55c (patch) | |
| tree | 10cdb1616fa03577727a2d21a2e465bec635e835 /pkg/manager/diff.go | |
| parent | c0757a89e4ea36c6ec7b3d5c540a5f3f97a0e5ef (diff) | |
pkg/manager: add a sanity check for base kernel crashes
It might be possible that:
1) The reproducer did not crash the base kernel.
2) Yet the base kernel has crashed with the same title independently
since the moment we have started to find the reproducer etc.
It should not be normally happening (it means that the current mechanism
of checking whether the bug affects the base kernel is flawed), but it
still happens.
Add an extra check to avoid reporting such false positives and call
log.Errorf() to ensure that the situation will be recorded in the logs.
Diffstat (limited to 'pkg/manager/diff.go')
| -rw-r--r-- | pkg/manager/diff.go | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/pkg/manager/diff.go b/pkg/manager/diff.go index 792b1e46e..54c8dc822 100644 --- a/pkg/manager/diff.go +++ b/pkg/manager/diff.go @@ -167,7 +167,14 @@ loop: dc.store.BaseCrashed(rep.Title, rep.Report) case ret := <-runner.done: // We have run the reproducer on the base instance. - if ret.crashReport == nil { + + // A sanity check: the base kernel might have crashed with the same title + // since the moment we have stared the reproduction / running on the repro base. + crashesOnBase := dc.store.EverCrashedBase(ret.origReport.Title) + if ret.crashReport == nil && crashesOnBase { + // Report it as error so that we could at least find it in the logs. + log.Errorf("repro didn't crash base, but base itself crashed: %s", ret.origReport.Title) + } else if ret.crashReport == nil { dc.store.BaseNotCrashed(ret.origReport.Title) dc.patchedOnly <- &UniqueBug{ Report: ret.origReport, |
