aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/report/linux.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2022-10-24 09:36:38 +0200
committerDmitry Vyukov <dvyukov@google.com>2022-10-24 09:54:01 +0200
commitfaae2fdada12b98e508bcf76fef1fe1aa5f5183b (patch)
tree9db80a3b718e9e37cba68605b18f19c82ed27993 /pkg/report/linux.go
parentb9916736fd789fceaf82afc80cbb561e67eeac67 (diff)
pkg/report: parse stack in "inconsistent lock state" reports
We took the exact top frame for these reports. As the result the frame filtering logic wasn't working and some bugs were attributed to very common functions like _atomic_dec_and_lock/kmem_cache_alloc_node. Parse the full stack instead.
Diffstat (limited to 'pkg/report/linux.go')
-rw-r--r--pkg/report/linux.go9
1 files changed, 8 insertions, 1 deletions
diff --git a/pkg/report/linux.go b/pkg/report/linux.go
index e67806584..0063ae93d 100644
--- a/pkg/report/linux.go
+++ b/pkg/report/linux.go
@@ -1039,6 +1039,7 @@ var linuxStackParams = &stackParams{
"report_bug",
"fixup_bug",
"print_report",
+ "print_usage_bug",
"do_error",
"invalid_op",
"_trap",
@@ -1707,7 +1708,13 @@ var linuxOopses = append([]*oops{
{
title: compile("WARNING: inconsistent lock state"),
report: compile("WARNING: inconsistent lock state(?:.*\\n)+?.*takes(?:.*\\n)+?.*at: (?:{{PC}} +)?{{FUNC}}"),
- fmt: "inconsistent lock state in %[1]v",
+ fmt: "inconsistent lock state in %[2]v",
+ stack: &stackFmt{
+ parts: []*regexp.Regexp{
+ linuxCallTrace,
+ parseStackTrace,
+ },
+ },
},
{
title: compile("WARNING: suspicious RCU usage"),