Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Sample crash report" does not always match the report title. #4168

Open
ramosian-glider opened this issue Aug 30, 2023 · 3 comments
Open

"Sample crash report" does not always match the report title. #4168

ramosian-glider opened this issue Aug 30, 2023 · 3 comments
Labels

Comments

@ramosian-glider
Copy link
Member

When bugs with different titles are sometimes grouped together (e.g. general protection fault in foo and KASAN: use-after-free in foo), syzbot may update a particular bug with a sample crash log having a different title.

One example is https://syzkaller.appspot.com/bug?extid=a476a62530a631834eb0. Here the KMSAN bug is grouped together with the KASAN invalid-access and the GPF report. As a result, the letter sent to the developers has the title [syzbot] [reiserfs?] KMSAN: uninit-value in __run_timers (3), but its body only lists the GPF report, which is completely misleading.

I think it would be more correct to only update the sample crash for a particular bug on the dashboard iff the title of the crash matches that of the bug. The letter sent to the developers can contain the date when that crash occurred (so that they can notice if it is too old) and the link to the freshest related crash with a different title (if at all necessary).

@a-nogikh
Copy link
Collaborator

a-nogikh commented Sep 1, 2023

When reporting or when rendering a bug's page, we pick a crash with the highest priority.

Currently we already do take into title equality into account:

func (crash *Crash) UpdateReportingPriority(c context.Context, build *Build, bug *Bug) {
prio := int64(kernelRepoInfo(c, build).ReportingPriority) * 1e6
divReproPrio := int64(1)
if crash.ReproIsRevoked {
divReproPrio = 10
}
if crash.ReproC > 0 {
prio += 4e12 / divReproPrio
} else if crash.ReproSyz > 0 {
prio += 2e12 / divReproPrio
}
if crash.Title == bug.Title {
prio += 1e8 // prefer reporting crash that matches bug title
}

... but the presence of a reproducer is still a much more important factor.

If the repro's title is slightly different from the original title (and alt titles intersect -- otherwise crashes won't be grouped), I think it's still worth reporting.

Ideally we'd find a way to only exclude the extreme cases like the one you described.

@ramosian-glider
Copy link
Member Author

If the repro's title is slightly different from the original title (and alt titles intersect -- otherwise crashes won't be grouped), I think it's still worth reporting.

Can't we change the report title to the one extracted from the crash in this case?

Is there any value in preserving the old report title that does not match the crash and thus does not anyhow help debugging?

@ramosian-glider
Copy link
Member Author

Another case reported yesterday: https://lore.kernel.org/netdev/0000000000007285dd0604a053db@google.com/T/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants