| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
Don't print object size (can change from kernel to kernel
and from config to config).
Fix function extraction regexp (must be non-eager).
Account for MSECS_MIN_AGE.
Ignore some known false positives.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
We used to infer kernel source location based on __sanitizer_cov_trace_pc symbol.
But it's not present if KCOV is not enabled.
Look at more symbols.
|
| | |
|
| |
|
|
| |
syzkallerNNN binaries are coming from pkg/repro.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
We may find stack frames from the second stack trace in a report when
searching from frames of the first one.
|
| |
|
|
|
|
|
|
| |
Allow stack traces to be intermixed with random kernel messages that don't
start with a ' ' char (all frames in a stack trace do).
Also improve report headers for BUGs from mm/usercopy.c, as we get quite a
lot of those.
|
| |
|
|
|
| |
linuxSymbolizeRe can match "IP: depot_fetch_stack+0x11/0x40", which is not
part of the call stack trace. Add another regexp that only matches frames.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
Try extracting report from console output only first. If that doesn't work,
try extracting it from the whole log.
Add regexp for executor printed BUGs.
Optimize regexps for rcu detected stalls.
Update rep.StartPos and rep.EndPos in vm/vm.go as well as rep.Output.
|
| | |
|
| |
|
|
| |
Update #457
|
| |
|
|
|
|
|
| |
If Parse detects a crash, it must provide something in the Report field.
If Report is empty, something is wrong with parsing.
Update #457
|
| |
|
|
|
|
|
| |
We see panic during report parsing as in #457.
This does not really fix them, but should stop managers crashing.
Update #457
|
| | |
|
| |
|
|
|
| |
pkg/repro expects pkg/report to return CrashStart index in the whole report,
not only in the kernel output.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently getting a complete report requires a complex,
multi-step dance (including getting information that
external users are not interested in -- guilty file).
Simplify interface down to 2 functions: Parse and Symbolize.
Parse does what it did before, Symbolize symbolizes report
and fills in maintainers. This simplifies both implementations
of Reporter interface and all users of the interface.
Potentially we could get this down to 1 function Parse
that does everything. However, (1) Symbolize can fail,
while Parse cannot, (2) usually we want to ignore (log)
Symbolize errors, but otherwise proceed with the report,
(3) repro does not need symbolization for all but the
last report.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
Whole raw output is indivisble part of Report,
currently we always pass Output separately along with Report.
Make Output a Report field.
Then, put whole Report into manager Crash and repro context and Result.
There is little point in passing Report as aa bunch of separate fields.
|
| | |
|
| | |
|
| |
|
|
| |
Look for stack frames in the next 10 lines after 'Call Trace' instead of 3.
|
| | |
|
| |
|
|
|
| |
Add another regexp to oopses that should match the whole report.
Report is considered corrupted when it doesn't.
|
| |
|
|
| |
KASAN report might not have Allocated or Freed stack traces at all.
|
| | |
|
| | |
|
| |
|
|
|
|
| |
We always pass report/log as []byte.
Pass it here the same way for consistency and to avoid
unnecessary large memory allocation/copy.
|
| |
|
|
|
|
|
|
|
| |
We currently have several names for crash attributes, which is disturbing.
E.g. crash title is called "Title" or "Desc". Name them consistently.
Title - single line bug identity.
Report - whole crash text.
Log - whole fuzzer/kernel output.
|
| |
|
|
|
| |
isCorrupted is linux-specific, but is a global function.
Name can collide with other OSes. Make is linux method.
|
| |
|
|
|
| |
Parse returns 5 variables now. Later we may want to add crash "priority".
Introduce Report struct that holds all report data.
|
| |
|
|
|
| |
This change makes pkg/report try to detect corrupted reports by
using some heuristics.
|
| | |
|
| | |
|
| | |
|
|
|
Introduce report.Reporter interface.
Add an implementation per-OS.
Make users be explicit about OS they are testing.
|