diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2022-10-24 09:36:38 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2022-10-24 09:54:01 +0200 |
| commit | faae2fdada12b98e508bcf76fef1fe1aa5f5183b (patch) | |
| tree | 9db80a3b718e9e37cba68605b18f19c82ed27993 /pkg | |
| parent | b9916736fd789fceaf82afc80cbb561e67eeac67 (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')
| -rw-r--r-- | pkg/report/linux.go | 9 | ||||
| -rw-r--r-- | pkg/report/testdata/linux/report/543 | 2 | ||||
| -rw-r--r-- | pkg/report/testdata/linux/report/665 | 2 | ||||
| -rw-r--r-- | pkg/report/testdata/linux/report/669 | 2 |
4 files changed, 11 insertions, 4 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"), diff --git a/pkg/report/testdata/linux/report/543 b/pkg/report/testdata/linux/report/543 index 6e5fd2c55..6c134895b 100644 --- a/pkg/report/testdata/linux/report/543 +++ b/pkg/report/testdata/linux/report/543 @@ -1,4 +1,4 @@ -TITLE: inconsistent lock state in vprintk_emit +TITLE: inconsistent lock state in bad_mode [ 0.000000][ C0] ================================ [ 0.000000][ C0] WARNING: inconsistent lock state diff --git a/pkg/report/testdata/linux/report/665 b/pkg/report/testdata/linux/report/665 index 37d13f56f..29f072c98 100644 --- a/pkg/report/testdata/linux/report/665 +++ b/pkg/report/testdata/linux/report/665 @@ -1,4 +1,4 @@ -TITLE: inconsistent lock state in _atomic_dec_and_lock +TITLE: inconsistent lock state in ntfs_fill_super [ 1336.868665][ T9712] ================================ [ 1336.869886][ T9712] WARNING: inconsistent lock state diff --git a/pkg/report/testdata/linux/report/669 b/pkg/report/testdata/linux/report/669 index cd24cad68..5e45d188d 100644 --- a/pkg/report/testdata/linux/report/669 +++ b/pkg/report/testdata/linux/report/669 @@ -1,4 +1,4 @@ -TITLE: inconsistent lock state in kmem_cache_alloc_node +TITLE: inconsistent lock state in fs_reclaim_acquire [ 860.112634][ C1] ================================ [ 860.117823][ C1] WARNING: inconsistent lock state |
