From 76b59936dab9134fbf0b81b1de7960b88ab970ef Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Thu, 22 Nov 2018 07:10:16 +0100 Subject: pkg/report: add "PANIC: double fault" report format Amusing that's another kernel failure mode that we are discovering after 3 years. One can't even reliably understand when kernel has crashed. I wonder if syzkaller never hit these, or just never recognized and reported them. We will see. Don't even want to think about arm kernel output parsing. --- pkg/report/linux.go | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) (limited to 'pkg/report/linux.go') diff --git a/pkg/report/linux.go b/pkg/report/linux.go index 3e6ebebcf..cec2b4e69 100644 --- a/pkg/report/linux.go +++ b/pkg/report/linux.go @@ -1206,6 +1206,21 @@ var linuxOopses = []*oops{ }, []*regexp.Regexp{}, }, + { + []byte("PANIC: double fault"), + []oopsFormat{ + { + title: compile("PANIC: double fault"), + fmt: "PANIC: double fault in %[1]v", + stack: &stackFmt{ + parts: []*regexp.Regexp{ + linuxRipFrame, + }, + }, + }, + }, + []*regexp.Regexp{}, + }, { []byte("kernel BUG"), []oopsFormat{ @@ -1256,9 +1271,13 @@ var linuxOopses = []*oops{ []byte("divide error:"), []oopsFormat{ { - title: compile("divide error: "), - report: compile("divide error: (?:.*\\n)+?.*RIP: [0-9]+:(?:{{PC}} +{{PC}} +)?{{FUNC}}"), - fmt: "divide error in %[1]v", + title: compile("divide error: "), + fmt: "divide error in %[1]v", + stack: &stackFmt{ + parts: []*regexp.Regexp{ + linuxRipFrame, + }, + }, }, }, []*regexp.Regexp{}, @@ -1267,9 +1286,13 @@ var linuxOopses = []*oops{ []byte("invalid opcode:"), []oopsFormat{ { - title: compile("invalid opcode: "), - report: compile("invalid opcode: (?:.*\\n)+?.*RIP: [0-9]+:{{PC}} +{{PC}} +{{FUNC}}"), - fmt: "invalid opcode in %[1]v", + title: compile("invalid opcode: "), + fmt: "invalid opcode in %[1]v", + stack: &stackFmt{ + parts: []*regexp.Regexp{ + linuxRipFrame, + }, + }, }, }, []*regexp.Regexp{}, -- cgit mrf-deployment