aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/manager/diff.go
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2025-04-11 14:30:29 +0200
committerAleksandr Nogikh <nogikh@google.com>2025-04-15 08:18:26 +0000
commit80d0e54b1ffe18e2e65923966dadc7e344dba55c (patch)
tree10cdb1616fa03577727a2d21a2e465bec635e835 /pkg/manager/diff.go
parentc0757a89e4ea36c6ec7b3d5c540a5f3f97a0e5ef (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.go9
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,