aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/report/linux.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-11-22 07:10:16 +0100
committerDmitry Vyukov <dvyukov@google.com>2018-11-22 07:10:16 +0100
commit76b59936dab9134fbf0b81b1de7960b88ab970ef (patch)
tree54ea6f9f1cf64f6469b7b8cf595b9d6cda707338 /pkg/report/linux.go
parent9db828b50673b642da7da89eede4348da3aa4987 (diff)
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.
Diffstat (limited to 'pkg/report/linux.go')
-rw-r--r--pkg/report/linux.go35
1 files changed, 29 insertions, 6 deletions
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
@@ -1207,6 +1207,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{},