aboutsummaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2025-08-21 11:47:16 +0200
committerAleksandr Nogikh <nogikh@google.com>2025-08-21 12:29:47 +0000
commitd8fc408c676d3daadbe73a5311e587ad20835da6 (patch)
treed1e361b84ffb84cb2fab6e184c9b253799b907a9 /pkg
parent0ae3a01ad6fae385768ebb247d999c44631a1b99 (diff)
pkg/manager: record the right base kernel crash title
When we run a reproducer on a base kernel and it crashes, we must record the crash title observed on the base kernel. Rename the field to reduce the chance of confusion in the future.
Diffstat (limited to 'pkg')
-rw-r--r--pkg/manager/diff.go22
1 files changed, 11 insertions, 11 deletions
diff --git a/pkg/manager/diff.go b/pkg/manager/diff.go
index 1cd10d2f9..57340314e 100644
--- a/pkg/manager/diff.go
+++ b/pkg/manager/diff.go
@@ -198,34 +198,34 @@ loop:
// 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.everCrashedBase(ctx, ret.origReport.Title)
+ crashesOnBase := dc.everCrashedBase(ctx, ret.reproReport.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)
+ log.Errorf("repro didn't crash base, but base itself crashed: %s", ret.reproReport.Title)
} else if ret.crashReport == nil {
- dc.store.BaseNotCrashed(ret.origReport.Title)
+ dc.store.BaseNotCrashed(ret.reproReport.Title)
select {
case <-ctx.Done():
case dc.patchedOnly <- &UniqueBug{
- Report: ret.origReport,
+ Report: ret.reproReport,
Repro: ret.repro,
}:
}
- log.Logf(0, "patched-only: %s", ret.origReport.Title)
+ log.Logf(0, "patched-only: %s", ret.reproReport.Title)
// Now that we know this bug only affects the patch kernel, we can spend more time
// generating a minimalistic repro and a C repro.
if !ret.fullRepro {
reproLoop.Enqueue(&Crash{
Report: &report.Report{
- Title: ret.origReport.Title,
+ Title: ret.reproReport.Title,
Output: ret.repro.Prog.Serialize(),
},
FullRepro: true,
})
}
} else {
- dc.reportBaseCrash(ctx, ret.origReport)
- log.Logf(0, "crashes both: %s / %s", ret.origReport.Title, ret.crashReport.Title)
+ dc.reportBaseCrash(ctx, ret.crashReport)
+ log.Logf(0, "crashes both: %s / %s", ret.reproReport.Title, ret.crashReport.Title)
}
case ret := <-dc.doneRepro:
// We have finished reproducing a crash from the patched instance.
@@ -717,7 +717,7 @@ type reproRunner struct {
}
type reproRunnerResult struct {
- origReport *report.Report
+ reproReport *report.Report
crashReport *report.Report
repro *repro.Result
fullRepro bool // whether this was a full reproduction
@@ -755,7 +755,7 @@ func (rr *reproRunner) Run(ctx context.Context, r *repro.Result, fullRepro bool)
rr.kernel.pool.ReserveForRun(min(cnt, pool.Total()))
}()
- ret := reproRunnerResult{origReport: r.Report, repro: r, fullRepro: fullRepro}
+ ret := reproRunnerResult{reproReport: r.Report, repro: r, fullRepro: fullRepro}
for doneRuns := 0; doneRuns < needRuns; {
if ctx.Err() != nil {
return
@@ -781,7 +781,7 @@ func (rr *reproRunner) Run(ctx context.Context, r *repro.Result, fullRepro bool)
Opts: opts,
})
})
- logPrefix := fmt.Sprintf("attempt #%d to run %q on base", doneRuns, ret.origReport.Title)
+ logPrefix := fmt.Sprintf("attempt #%d to run %q on base", doneRuns, ret.reproReport.Title)
if errors.Is(runErr, context.Canceled) {
// Just exit without sending anything over the channel.
log.Logf(1, "%s: aborting due to context cancelation", logPrefix)