From 2a509c272e4ec35c770b5ec42f321e66ce525a11 Mon Sep 17 00:00:00 2001 From: Florent Revest Date: Wed, 19 Jul 2023 18:04:08 +0200 Subject: pkg/report: gather Go runtime bugs under one bug When a "fatal error:" bug is reported, this usually means that syzkaller itself had a memory corruption (except in the gVisor fuzzing case where this could be an actual bug in gVisor) Most likely, this is due to a kernel that went wild and corrupted the syzkaller address space, but in that case the exact details of what part of the runtime failed are rarely relevant. This gathers all these go runtime errors under one umbrella so they are easier to track. Except for gVisor on which the logic is kept the same as existing. Add three test cases to the linux reporting: - 705 (equivalent to the current all/report/7) to make sure Go OOO are suppressed (they have a different title now but still get suppressed) - 706 (equivalent to the current all/report/8) to make sure that ALSA "fatal errors" are not handled as Go fatal errors - 707 (new) to make sure that reports like https://syzkaller.appspot.com/bug?extid=3f00d7083c52713ba3b0 are re-named to "go runtime error" --- pkg/report/testdata/linux/report/705 | 15 +++++++++++++++ pkg/report/testdata/linux/report/706 | 2 ++ pkg/report/testdata/linux/report/707 | 6 ++++++ 3 files changed, 23 insertions(+) create mode 100644 pkg/report/testdata/linux/report/705 create mode 100644 pkg/report/testdata/linux/report/706 create mode 100644 pkg/report/testdata/linux/report/707 (limited to 'pkg/report/testdata/linux') diff --git a/pkg/report/testdata/linux/report/705 b/pkg/report/testdata/linux/report/705 new file mode 100644 index 000000000..4557d1c6b --- /dev/null +++ b/pkg/report/testdata/linux/report/705 @@ -0,0 +1,15 @@ +TITLE: go runtime error +SUPPRESSED: Y + +runtime: out of memory: cannot allocate 1073741824-byte block (6446022656 in use) +fatal error: out of memory + +goroutine 1 [running]: +runtime.throw({0x4772bc?, 0x20000?}) + runtime/panic.go:1047 +0x5d fp=0xc000184e38 sp=0xc000184e08 pc=0x42ea1d +runtime.(*mcache).allocLarge(0xc0000b0a00?, 0x40000000, 0x1) + runtime/mcache.go:236 +0x178 fp=0xc000184e80 sp=0xc000184e38 pc=0x411318 +runtime.mallocgc(0x40000000, 0x46a9c0, 0x1) + runtime/malloc.go:1053 +0x4f7 fp=0xc000184ee8 sp=0xc000184e80 pc=0x40b157 + + diff --git a/pkg/report/testdata/linux/report/706 b/pkg/report/testdata/linux/report/706 new file mode 100644 index 000000000..4b7e087b1 --- /dev/null +++ b/pkg/report/testdata/linux/report/706 @@ -0,0 +1,2 @@ + +[ 471.848871][T11685] ALSA: seq fatal error: cannot create timer (-22) diff --git a/pkg/report/testdata/linux/report/707 b/pkg/report/testdata/linux/report/707 new file mode 100644 index 000000000..b059e07ea --- /dev/null +++ b/pkg/report/testdata/linux/report/707 @@ -0,0 +1,6 @@ +TITLE: go runtime error + +fatal error: runtimer: bad p + +runtime stack: +fatal: bad g in signal handler \ No newline at end of file -- cgit mrf-deployment