Commit Graph

251 Commits

Author SHA1 Message Date
Anton Lindqvist
2f661ec405 pkg/report: normalize malloc free list modified reports on OpenBSD 2019-10-13 10:31:52 +02:00
Dmitry Vyukov
b1ebbfef72 pkg/report: fix up test 2019-10-08 16:36:45 +02:00
Dmitry Vyukov
ec93713427 pkg/report: ignore mutex_slowlock in task hung reports 2019-10-08 16:06:25 +02:00
Dmitry Vyukov
28ac6e6496 pkg/report: fix ODEBUG parsing for v4.4 2019-10-07 09:37:24 +02:00
Marco Elver
c86336cf24 pkt/report: Shorten KCSAN report titles 2019-10-04 15:52:40 +02:00
Anton Lindqvist
eb6b9855e0 pkg/report: improve uvm_fault reports on OpenBSD
Some reports[1] does not include a symbol but rather an address in the
"Stopped at" line. There's unfortunately no useful context to add to the
title so make them generic instead.

[1] https://syzkaller.appspot.com/bug?id=3e44d0b128fd8d6826e4d0044baadcfc02ba7125
2019-09-28 12:05:58 +02:00
Anton Lindqvist
2f1548bc77 pkg/report: normalize attempt to execute user address reports on OpenBSD (#1431) 2019-09-26 12:52:00 -07:00
Andrey Konovalov
24d405a355 pkg/report: improve USB reports 2019-09-25 18:48:23 +02:00
Andrey Konovalov
a3355dba73 pkg/report: improve USB reports
tty_unregister_device looks generic enough, add to ignore list.
2019-09-25 14:55:31 +02:00
Andrey Konovalov
0942eab8c6 pkg/report: improve USB report titles 2019-09-24 15:15:04 +02:00
Mark Johnston
83620b5b4e pkg/report: deduplicate some common FreeBSD panics 2019-09-24 10:42:43 +02:00
Dmitry Vyukov
d96e88f320 pkg/report: add a test case which we mis-handle now 2019-09-20 09:37:36 +02:00
Dmitry Vyukov
ad847b96aa pkg/report: ignore "INFO: recovery required on readonly filesystem"
This is not a kernel bug.
2019-09-17 16:14:31 +02:00
Andrey Konovalov
5883acb646 pkg/report: improve some USB reports 2019-09-17 15:09:43 +02:00
Dmitry Vyukov
b0e5f924b5 pkg/report: update ODEBUG warning format
It seems something has changed in the kernel again...
2019-09-04 10:35:20 +02:00
Andrey Konovalov
7ca47f80a8
pkg/report: improve USB reports (#1372) 2019-09-03 14:09:51 +02:00
Anton Lindqvist
9adfa8760f pkg/report: improve witness extraction for OpenBSD
Reports from witness regarding returning to userspace with locks held is not
unique enough, causing all lock leaks to be grouped under the same bug.
Instead try to extract the name of syscall where the first held lock was
grabbed.

While here, shorten the title a bit.
2019-08-30 06:13:56 -07:00
Michael Pratt
b231f4c271 pkg/gvisor: suppress one more gvisor PID exhaustion 2019-08-22 07:21:09 -07:00
Andrey Konovalov
0ab81da2cf
pkg/report: revert bucketing MAX_STACK_TRACE_ENTRIES reports (#1357)
MAX_STACK_TRACE_ENTRIES crash reports caused by a particular issues can come
from any part of the kernel, so bucketing them based on the stack trace is
pointless and only creates duplicate bug reports.
2019-08-22 14:42:17 +02:00
Andrey Konovalov
5e0a9c712f pkg/report: improve netdev reports titles 2019-08-21 07:09:54 -07:00
Andrey Konovalov
ae348fb726 pkg/report: ignore finish_wait frame 2019-08-19 09:44:52 -07:00
Andrey Konovalov
8fd428a197 pkg/report: improve ODEBUG titles 2019-08-15 13:39:03 -07:00
Andrey Konovalov
ef801a3eab
pkg/report: improve some titles (#1332)
* pkg/report: improve BUG: MAX_STACK_TRACE_ENTRIES titles

* pkg/report: improve refcount bug titles
2019-08-13 19:05:24 +02:00
Andrey Konovalov
657092bddf pkg/report: add KMSAN kernel-usb-infoleak tests 2019-08-08 15:57:02 +02:00
Andrey Konovalov
8f0516c5fa pkg/report: ignore flush_work related frames 2019-08-08 15:19:28 +02:00
Dmitry Vyukov
18678d6989 pkg/report: support older format of "bad usercopy" 2019-07-22 09:07:23 +02:00
Dmitry Vyukov
4ec4ea4890 pkg/report: support new format of "held lock freed" linux bugs 2019-07-16 16:37:33 +02:00
R3x
a827bf70d7 pkg/report: Fix corrupted reports 2019-07-14 19:22:39 +03:00
Dmitry Vyukov
5f175e9c09 pkg/report: ignore __wake_up function on linux
They are very generic and a bug is almost always in the parent frame.
2019-07-02 09:03:49 +02:00
R3x
df9270ba7f pkg/report: fix ASan report parsing bug 2019-07-01 16:28:15 +02:00
Dmitry Vyukov
da9246f6d7 pkg/report: fix up parsing of lockdep stacks 2019-06-23 14:48:05 +02:00
Dmitry Vyukov
f5dd5568d2 pkg/report: improve should_fail regexp
Some kernels print hex PC value before frames.
Account for that in should_fail-matching regexp.
2019-06-06 09:26:26 +02:00
Dmitry Vyukov
61f5c63922 pkg/report: skip refcount_* functions
These are too generic and don't point to any subsystem. Skip them.
2019-06-04 08:53:37 +02:00
Andrey Konovalov
63bf051fc1 pkg/report: add del_timer_sync to skip patterns 2019-06-03 13:14:08 +02:00
Andrey Konovalov
2673c53079 pkg/report: ignore more frames for warnings in usb_submit_urb 2019-05-29 16:16:46 +02:00
Andrey Konovalov
d53d0cd242 pkg/report: improve usb_submit_urb report titles 2019-05-27 13:52:30 +02:00
Dmitry Vyukov
4d4a4420e7 pkg/report: add Type/Frame to Report
In several places we do special handling for some crash types.
Currently we compare report title with magic strings,
which is error-prone. Add explicit Type to reports.
2019-05-20 19:40:20 +02:00
Andrew Donnellan
2755003a34 pkg/report: Label powerpc unreliable stack frames as questionable
Add a second "questionable" regex to match the powerpc "(unreliable)"
format.

Signed-off-by: Andrew Donnellan <ajd@linux.ibm.com>
2019-05-17 07:15:52 +02:00
Andrew Donnellan
2233782fc1 pkg/report: Add powerpc's __switch_to to function skip list
Signed-off-by: Andrew Donnellan <ajd@linux.ibm.com>
2019-05-17 07:15:52 +02:00
Dmitry Vyukov
4e7ecf0713 pkg/report: preserve trackback from other CPUs
For some bug types kernel produces traceback of all CPUs
(which is presumably useful for these crashes).
However, we currently throw it away because it has context
different from the oops context.
Detect such traceback and preserve output.
2019-05-10 10:31:07 +02:00
Dmitry Vyukov
214bf476d3 pkg/report: improve format of "locking bug" reports 2019-05-09 15:04:17 +02:00
Dmitry Vyukov
6fc130d361 pkg/report: add new format of kernel page faults 2019-05-09 14:33:39 +02:00
Andrey Konovalov
f8f0147ff7 pkg/report: don't mark unknown oopses as corrupted 2019-05-08 16:50:27 +02:00
Siddharth M
27544d0fc8 pkg/report: fix other NetBSD corrupted reports
* Fix Superviser mode and lock error

* Fix smaller issues
2019-05-07 09:03:05 +02:00
Andrey Konovalov
024f6c4b7f pkg/report: improve warning titles
This change makes the reporting code account for the skip patterns when
selecting the frame that is used in a title of a generic warning report.
2019-05-07 08:53:52 +02:00
Andrew Donnellan
04e9d8cedd pkg/report: Handle powerpc stack traces correctly
powerpc stack traces are printed a bit differently from x86 stack traces.
Adjust the regexes accordingly to cope with this format.

Signed-off-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
2019-05-07 08:41:33 +02:00
Andrey Konovalov
148296f478 pkg/report: improve titles of 'sleeping function called from invalid context' 2019-05-06 18:39:08 +02:00
Dmitry Vyukov
c73da24c18 pkg/report: add __ia32_sys_ syscall prefix 2019-05-03 12:40:49 +02:00
Andrey Konovalov
1bfa09b967 pkg/report: skip printk and other printing functions 2019-05-03 08:10:28 +02:00
Dmitry Vyukov
0766ce61fd pkg/report: fix stalls in RIP frame
Even though we extract an anchor frame which usually higher up the stack,
the anchor frame can be on RIP: line too. Account for that.
2019-04-24 00:02:57 +03:00
Dmitry Vyukov
deda7c38f9 pkg/report: skip osq_lock on linux
Another new helper for locking.
2019-04-23 19:18:39 +03:00
Andrey Konovalov
05dbaf1bf4 report: skip strscpy and read_word_at_a_time frames 2019-04-22 12:02:56 +03:00
Andrey Konovalov
c6165716a5 pkg/report: ignore 'down' frame in the call stack 2019-04-11 18:54:45 +02:00
Dmitry Vyukov
a2fe7eca30 pkg/report: fix test 2019-04-09 18:47:30 +02:00
Dmitry Vyukov
95f24af5d3 pkg/report: add another interesting linux test case 2019-04-09 18:38:04 +02:00
Dmitry Vyukov
b8dec324f2 pkg/report: refine stalls in compat ioctl's 2019-04-09 18:38:04 +02:00
Dmitry Vyukov
3635d6e678 pkg/report: refine hung task processing for v4.15 2019-04-05 08:52:19 +02:00
Dmitry Vyukov
ba27bbab87 pkg/report: add a test for .PID removal 2019-04-05 08:47:46 +02:00
Dmitry Vyukov
a9ca43d41c pkg/report: add another linux test 2019-04-01 14:49:28 +02:00
Dmitry Vyukov
6b138f0f3c pkg/report: work around GCE console bugs 2019-03-29 09:40:31 +01:00
Dmitry Vyukov
2c86e0a54a pkg/report: skip memmove on linux 2019-03-24 16:59:26 +01:00
Mark Johnston
427ea48700 pkg/report: deduplicate sctp "no chunks on the queues" reports 2019-03-20 17:46:29 +01:00
Mark Johnston
2458c1c6c2 pkg/report: fix matching for traps in kernel mode
We already have a pattern to match "Fatal trap N: ..." panics, but the
format of our backtraces has changed since it was added.  Add another
pattern which correctly matches a few instances generated by syzbot.
2019-03-19 18:45:18 +01:00
Anton Lindqvist
bab43553a9 pkg/report: improve page fault detection on OpenBSD
Fixes #1059
2019-03-15 09:08:49 +01:00
Dmitry Vyukov
a71bfb62b4 pkg/report: skip memchr in linux reports 2019-03-12 14:31:24 +01:00
Mark Johnston
f7f70d5a7e pkg/report: match panics from locking a destroyed lock
The plain panic message includes an absolute path to the source file
where we panicked, which may be too long for a report title.
2019-03-12 14:30:21 +01:00
Siddharth M
13faf88fdf pkg/report: fix the error corrupting reports
* fix error with reports

* add additional testdata
2019-03-08 07:55:08 +01:00
Dmitry Vyukov
2eb2cd93e0 pkg/report: skip retpolines in reports
These __x86_indirect_thunk_rax broke reports for bad indirect calls.
2019-03-07 19:35:39 +01:00
Siddharth M
2a477d7713 pkg/report: add better ASan bug parsing for NetBSD
* Add basic ASan parser

* Fix the test data

* Removed Read|Write parameter
2019-03-05 14:36:59 +01:00
Dmitry Vyukov
34ec456bcf pkg/report: ignore postfix error on netbsd 2019-02-27 19:35:36 +01:00
Dmitry Vyukov
0c7ffbeafc pkg/report: update UBSAN netbsd report format 2019-02-23 11:58:06 +01:00
Dmitry Vyukov
c28db61f53 pkg/report: add KUBSan netbsd reports
Just to detect them at all and have some test base.
Will need better bug identification later.
2019-02-23 11:41:44 +01:00
Dmitry Vyukov
1c2f03dc0d pkg/report: add few netbsd KASAN reports 2019-02-22 18:39:15 +01:00
Anton Lindqvist
f42dee6d5e pkg/report: normalize timeout_add panic on OpenBSD 2019-02-15 17:39:25 +01:00
Anton Lindqvist
c69659e352 openbsd: remove shorten report logic (#986)
A line length of 79 in the ddb output does not necessarily imply that the
following line is a continuation of the current line. Since there's no way
to distinguish between ordinary and continuation lines, it could end up
corrupting the report by joining two lines that are disjoint[1].

Instead, disable line wrapping in ddb. If we want some kind of wrapping in
the future it's easier done by pkg/report.

[1] https://syzkaller.appspot.com/bug?extid=03f7377a9848d7d008c9
2019-02-09 08:23:53 -08:00
Dmitry Vyukov
564f9a4f57 pkg/report: add simple version of netbsd crash parser
Just something to start with. Plus some test cases.
2019-02-01 19:52:56 +01:00
Dmitry Vyukov
25e10a0434 executor: remove ability to detect kernel bugs
This ability was never used but we maintain a bunch of code for it.
syzkaller also recently learned to spoof this error code
with some ptrace magic (probably intercepted control flow again
and exploited executor binary).
Drop all of it.
2019-01-31 11:35:53 +01:00
Anton Lindqvist
629c2a2773 pkg/report: improved witness handling
Possible now since the output is consistently prefixed[1].

[1] https://marc.info/?l=openbsd-cvs&m=154850328128727&w=2
2019-01-28 09:47:41 +01:00
Anton Lindqvist
bfab9cd88b pkg/report: recognize witness on OpenBSD 2019-01-24 20:21:17 +01:00
Dmitry Vyukov
5cf49c1c63 pkg/report: skip trylock functions
Skip various *_trylock functions as we do for *_lock functions.
2019-01-22 09:26:18 +01:00
Dmitry Vyukov
b47fa78d18 pkg/report: more tuning for trusty reports
Update #933
2019-01-15 18:02:24 +01:00
Dmitry Vyukov
f034b65dea pkg/report: add parsing of trusty crashes
Update #933
2019-01-14 17:41:04 +01:00
Dmitry Vyukov
3085f2752e pkg/report: strip trailing deadlock reports
Oops messages frequently induce possible deadlock reports
because oops reporting introduces unexpected locking chains.
So if we have enough of the actual oops, strip the deadlock message.
2019-01-14 16:47:11 +01:00
Dmitry Vyukov
07e1c79776 pkg/report: improve linux report parsing if we have contexts
If we have contexts, we don't need to strip the first report
at the beginning of the second report.
2019-01-06 16:43:02 +01:00
Dmitry Vyukov
7da2392541 pkg/report: support CONFIG_PRINTK_CALLER
CONFIG_PRINTK_CALLER has reached linux-next:
https://groups.google.com/d/msg/syzkaller/xEDUgkgFvL8/d5bBS3BJBwAJ

Enable CONFIG_PRINTK_CALLER and support parsing of its output format.

This gives us several advantages:
 - output from different contexts don't intermix
 - intermixed output doesn't cause corrupted reports
 - we can keep larger prefix since we know it comes from the same task

Credit for the kernel part goes to Tetsuo Handa.
Also Sergey Senozhatsky and Petr Mladek for reviews of the kernel part.

Fixes #596
Fixes #600
2019-01-03 19:23:07 +01:00
Dmitry Vyukov
d580c113aa pkg/report: account for new symbol suffixes produced by gcc9 2018-12-31 18:50:05 +01:00
Dmitry Vyukov
badabe5ac0 pkg/report: improve parsing of "corrupted stack end detected inside scheduler" 2018-12-30 12:19:54 +01:00
Dmitry Vyukov
4ebd1f1e83 pkg/report: improve double fault parsing
Ignore double faults as start of a second report.
Double fault can happen during handling of paging faults
if memory is badly corrupted. Also it usually happens
synchronously, which means that maybe the report is not corrupted.
But of course it can come from another CPU as well.

Add more interesting test cases.
2018-12-30 10:04:42 +01:00
Dmitry Vyukov
2ccf0adec3 pkg/report: parse linux stack corruption reports 2018-12-30 09:39:28 +01:00
Anton Lindqvist
be79df56ff pkg/report: lower uvm_fault oops precedence to favor more specific titles 2018-12-24 06:48:44 +01:00
Anton Lindqvist
fa2887794d pkg/report: normalize OpenBSD assertion messages 2018-12-24 06:48:44 +01:00
Dmitry Vyukov
2b4970017d pkg/report: fix Start/EndPos calculation for fuchsia
We computed Start/EndPos after trimming line prefix,
this resulted in offsetted values which are not correct.
Fix that. Add more tests and checks for Start/EndPos.
2018-12-20 13:22:46 +01:00
Dmitry Vyukov
dd2fb82fa0 pkg/report: another gvisor OOM suppression 2018-12-13 16:45:56 +01:00
Dmitry Vyukov
61b76f0097 pkg/report: another gvisor OOM suppression 2018-12-13 16:40:18 +01:00
Dmitry Vyukov
e7cae6a7f2 pkg/report: another gvisor OOM suppression 2018-12-13 16:36:15 +01:00
Dmitry Vyukov
ecf8ceeef2 pkg/report: pkg/report: relaxed gvisor OOM suppressions more
There are more variations of this panic format.
2018-12-13 12:33:17 +01:00
Dmitry Vyukov
a553162c82 pkg/report: replace more moving parts in gvisor crash titles
"container" seems to have been renamed to "sandbox".
Also exact pid numbers are harmful.
2018-12-13 12:29:52 +01:00
Dmitry Vyukov
3f9ec66365 pkg/report: relaxed gvisor OOM suppressions
Existing ones don't match actual gvisor output after address mangling.
Not matching exact context in parens should be good enough re false positives.
2018-12-13 12:22:49 +01:00
Michael Pratt
1789e8d66c pkg/report: update gvisor ptrace regs suppressions
99d5958693
changed the format of these to include the registers.
2018-12-13 09:38:16 +01:00
Dmitry Vyukov
0f9424b449 pkg/report: skip strncpy in linux reports 2018-12-12 13:05:51 +01:00