| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
If these happen to be in the stack frames, in almost all cases it will
be due to a bug in the calling code.
See the discussion in #5784.
|
| |
|
|
|
|
| |
They are misleading guilty file detection.
See https://groups.google.com/g/syzkaller-bugs/c/T6Z_5Gh1Qio
|
| | |
|
| | |
|
| |
|
|
|
| |
Ignore arch/arm64/kernel/process.c and some of page cache sources, as
the real problem will much more likely lie in the caller.
|
| |
|
|
|
| |
Currently we return ".", which is not really expected by all the
surrounding logic.
|
| | |
|
| |
|
|
|
|
| |
The existing code is broken - the console output does not contain a
whitespace before the apic_timer_interrupt frame. Also, add the
apic_timer source files to the excluded ones.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously we would pick the first non-ignored file. Now instead,
continue searching the stack trace for more specific files.
A "more specific" file wrt the first non-ignored file has:
- the same directory prefix
- a deeper directory nesting
E.g. `fs/ntfs3/*.c` is "more specific" than "fs/*.c".
We search for the most specific file (i.e. the deepest nesting), and
take the first most specific if there are multiple files with the same
nesting.
This commit also adds three tests for this behaviour, taken from
recent `syzbot` bugs which identified the wrong file. Now the desired
file is identified.
Only one existing test shows different output with the new behaviour.
Updates #3393.
|
| |
|
|
|
| |
ref_tracker is a generic debugging facility,
the actual bug is (almost always) in the caller.
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
LOCKDEP can add "hard/softirs last enabled/disabled at" lines
with more files at the top. These files are generally not related,
or at least out of order. We want to extract the file from stacks,
so ignore these lines.
|
| |
|
|
|
|
|
|
|
|
|
| |
We are getting lots of WARNINGs in urb.c and all of them seem
to mean a bug in a particular driver. And fixes for these bugs
go into a particular driver code. But we send all of them to
urb.c maintainers. Skip urb.c as a guilty file.
If a bug happens to be in urb.c for real, a driver maintainers
should CC USB core maintainers on it.
Update #2284
|
| |
|
|
|
|
| |
If we produce no guilty file at all, the report is mailed only to LKML,
which is mostly equivalent to mailing to nobody.
If we skip all files, return the first one.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The the added test for exception from exception corner case.
"BUG: spinlock lockup" fails to respect panic_on_warn and panic
after printing report (though, it's a BUG already, so it should
have been paniced even without panic_on_warn).
As the result we got "spinlock lockup" followed by "rcu stall" report.
And we have that special exception for rcu stalls b/c for them
the most of the report is irrelevant up to apic_timer_interrupt frame.
The code did not expect this weird double-report case and skipped
everything up to apic_timer_interrupt, though it's actually
a lockup in netfilter code.
|
| |
|
|
| |
Update #933
|
| |
|
|
|
|
|
| |
This is called from kfree in the added test.
We already ignore everything related to kmalloc/free
and e.g. arch/.*/mm/fault.c, so it looks reasonable
to ignore this one too.
|
| | |
|
| |
|
|
|
| |
Account for the case that some file names can appear _before_ crash report starts.
Start extracting guilty file starting from StartPos.
|
| | |
|
| | |
|
| |
|
|
| |
kcov frame can be present in rcu stalls, ignore it.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Replace stacktraceRe with custom code which is more flexible.
stacktraceRe stumbled on any unrelated lines and
could not properly parse truncated stacks.
2. Match report regexp earlier.
If we match simler title regexp, but don't match
report regexp or fail to parse stack trace, the report is corrupted.
This eliminates lots of duplicate corrupted oops entries,
which were there only because we had complex regexp's in titles.
3. Ignore low-level frames during stack parsing.
E.g. we never want to report a GPF in lock_acquire or memcpy
(somewhat similar to what we do for guilty files).
4. Add a bunch of specialized formats for WARNINGs.
There is number of generic debugging facilities (like ODEBUG,
debug usercopy, kobject, refcount_t, etc), and the bug
is never in these facilities, it's in the caller instead.
5. Improve some other oops formats.
6. Add a bunch of additional tests.
This resolves most of TODOs in tests.
Fixes #515
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|
|
linux_test.go is total mess and very hard to work with.
Turns out we had 2 tests that do exactly the same
(verify Report), but nobody ever noticed.
Move all test data to testdir/. One file per crash.
|