Dmitry Vyukov
0e29942f77
pkg/report: improve KMSAN report parsing
...
Extract guilty frame from stack.
Add few more ignored functions.
Add more tests.
2018-09-13 11:21:29 +02:00
Dmitry Vyukov
b692332724
pkg/report: improve rcu stall/lockup reports
...
During rcu stalls and cpu lockups kernel loops in some part of code,
usually across several functions. When the stall is detected, traceback
points to a random stack within the looping code. We generally take
the top function in the stack (with few exceptions) as the bug identity.
As the result stalls with the same root would produce multiple reports
in different functions, which is bad.
Instead we identify a representative function deeper in the stack.
For most syscalls it can be the syscall entry function (e.g. SyS_timer_create).
However, for highly discriminated functions syscalls like ioctl/read/write/connect
we take the previous function (e.g. for connect the one that points to exact
protocol, or for ioctl the one that is related to the device).
Fixes #710
2018-09-10 16:19:47 +02:00
Dmitry Vyukov
59e97f7e17
pkg/report: refine fuchsia function name regexp
...
C++ function names can contain '~'.
2018-09-04 16:40:27 +02:00
Dmitry Vyukov
938220fdbb
pkg/report: ignore mm/memory.c as guilty file
2018-08-29 21:27:37 -07:00
Anton Lindqvist
b771b17ec9
Add mandatory OpenBSD bits ( #689 )
...
all: add openbsd support
squash of the following commits:
* openbsd: add mandatory bits
* report: add OpenBSD support
* executor: skip building kvm on OpenBSD
* executor: add OpenBSD support
Linking against libutil is necessary due to usage of openpty(3).
* executor: fix typo in fail() message
* fixup! report: add OpenBSD support
* fixup! openbsd: add mandatory bits
* fixup! openbsd: add mandatory bits
* fixup! openbsd: add mandatory bits
* fixup! report: add OpenBSD support
* gometalinter: skip sys/openbsd
2018-08-28 10:07:26 -07:00
Dmitry Vyukov
36d87ddbf8
pkg/report: refactor and improve fuchsia report parsing
...
Switch to the existing oops-based infrastructure.
Extending existing code is nearly impossible.
Detect service crashes on fuchsia.
Add more tests.
2018-08-25 18:18:11 -07:00
Dmitry Vyukov
20749b5987
pkg/report: ignore android art debug output
...
Now actually ignore it.
2018-08-25 08:00:22 -07:00
Dmitry Vyukov
dd62265df8
pkg/report: ignore android art debug output
2018-08-25 07:59:35 -07:00
Dmitry Vyukov
565e2ad078
pkg/report: ignore another mutex lock guts function
2018-08-13 17:14:08 -07:00
Dmitry Vyukov
bf45aa5363
pkg/report: skip more spinlock frames
...
Currently this report is named:
"general protection fault in perf_trace_lock"
which is bad.
2018-08-04 17:39:21 +02:00
Dmitry Vyukov
5cbdd9f444
gometalinter: strengthen gocyclo limit
...
Strengthen gocycle limit 35->24! Yay! No more jumbo functions!
Fixes #538
2018-08-02 16:57:32 +02:00
Dmitry Vyukov
fbedd425b5
pkg/mgrconfig: move from syz-manager/mgrconfig
...
mgrconfig was used only by syz-manager initially,
but now it's used by a dozen of packages and it's
weird to import from under a binary dir.
pkg/ is much more reasonable dir for a widely used
helper package.
2018-08-02 16:57:32 +02:00
Dmitry Vyukov
72ad4a3c4c
pkg/report: refactor test
...
Split a long function.
Update #538
2018-08-02 16:57:31 +02:00
Dmitry Vyukov
46bad78542
pkg/report: refactor linux report parsing
...
Split a very long function into 2.
Update #538
2018-07-31 18:38:54 +02:00
Dmitry Vyukov
50c3709eb0
.gometalinter: reduce dupl threshold
...
Reduce dupl threshold from 63 to 60 and fix violations.
Update #538
2018-07-31 12:42:52 +02:00
Dmitry Vyukov
f5d67fbd9c
.gometalinter.json: enable gofmt
...
The part that we want from gofmt is simplify (-s).
Fix all code that needs fixing.
Update #538
2018-07-31 12:16:54 +02:00
Dmitry Vyukov
db7957bc09
pkg/report: add format for akaros warnings
2018-07-24 10:10:45 +02:00
Dmitry Vyukov
49f3583951
pkg/report: add another akaros backtrace message
2018-07-18 17:34:19 +02:00
Dmitry Vyukov
bad4246bf2
pkg/report: improve akaros reporter and implement symbolization
2018-07-16 17:03:14 +02:00
Dmitry Vyukov
58293c9eb3
pkg/report: fix kmalloc bug in krealloc
2018-07-16 10:16:21 +02:00
Dmitry Vyukov
3d741171f2
pkg/report: add "lock held when returning to user space" format for older kernels
2018-07-13 10:31:26 +02:00
Dmitry Vyukov
3986ce95fd
pkg/report: add report format for "lock held when returning to user space"
...
This report does not have stack trace, so we always detected it as corrupted.
2018-07-12 12:38:52 +02:00
Dmitry Vyukov
3abb98207d
pkg/report: detect partial result errors
2018-07-06 20:25:02 +02:00
Dmitry Vyukov
0fb38ef496
pkg/report: detect fuchsia double faults
2018-07-06 16:35:21 +02:00
Dmitry Vyukov
d02d039529
pkg/report: fix lambda demangling
...
demangle package does not minimize lambda symbols properly
(does not strip parameters and template paratemeter).
Do it manually.
See: https://github.com/ianlancetaylor/demangle/issues/5
2018-07-05 13:21:01 +02:00
Dmitry Vyukov
d9ed95ab6f
pkg/report: add simpler reporter for akaros
2018-07-05 10:44:34 +02:00
Dmitry Vyukov
f525fd7250
pkg/report: suppress more gvisor OOMs
2018-07-05 07:02:48 +02:00
Dmitry Vyukov
58924941cc
pkg/report: fix race on symbolizer in test
...
Symbolizer is not meant to be invoked with an empty binary.
2018-07-02 17:00:00 +02:00
Dmitry Vyukov
3e16f33c65
vm: suppress "no output" and "lost connection" reports
2018-06-30 14:51:07 +02:00
Dmitry Vyukov
44594e6362
pkg/report: suppress fuzzer crashes on fuchsia
2018-06-30 13:59:52 +02:00
Dmitry Vyukov
1d788bb883
pkg/report: better detect hangs on fuchsia
2018-06-30 13:21:17 +02:00
Dmitry Vyukov
a2c1dcb323
pkg/report: implement fuchsia reporter
2018-06-27 19:44:00 +02:00
Dmitry Vyukov
43e60f7e09
pkg/report: supporess another OOM for gvisor
2018-06-27 09:35:10 +02:00
Dmitry Vyukov
21e16efbf0
pkg/report: add suppressions for Go race OOMs
2018-06-23 10:13:12 +02:00
Dmitry Vyukov
cb93a59bbf
pkg/report: fix gvisor segv reports
2018-06-22 20:01:10 +02:00
Dmitry Vyukov
b5323c280f
pkg/report: add more gvisor formats
2018-06-22 17:38:37 +02:00
Dmitry Vyukov
2a075d57ab
pkg/report: allow to specify suppressions per OS
...
Currently all (linux-specific) suppressions are hardcoded in mgrconfig.
This is very wrong. Move them to pkg/report and allow to specify per OS.
Add gvisor-specific suppressions.
This required a bit of refactoring. Introduce mgrconfig.KernelObj finally.
Make report.NewReporter and vm.Create accept mgrconfig directly
instead of passing it as multiple scattered args.
Remove tools/syz-parse and it always did the same as tools/syz-symbolize.
Simplify global vars in syz-manager/cover.go.
Create reporter eagerly in manager. Use sort.Slice more.
Overall -90 lines removed.
2018-06-22 16:40:45 +02:00
Dmitry Vyukov
c71647f2cc
pkg/report: add gvisor support
2018-06-22 16:40:45 +02:00
Dmitry Vyukov
3cf0de82e9
pkg/report: move title sanitization from linux to common code
...
Stripping dynamic data (addresses, numbers) is required for all OSes.
Move this code from linux to common code.
2018-06-22 16:40:45 +02:00
Dmitry Vyukov
9a7d0a5412
pkg/report: pass vm type to NewReporter
...
For the case when VM type affects output.
Will be needed for gvisor. It is kinda linux, but kinda not.
2018-06-22 16:40:45 +02:00
Dmitry Vyukov
6db75fefbe
pkg/report: add another format for null RIP
...
Kernel keeps inventing new formats...
2018-06-08 09:34:02 +02:00
Dmitry Vyukov
7fb9023fd7
pkg/report: ignore down functions for task hung bugs
2018-06-07 14:01:22 +02:00
Dmitry Vyukov
a6bf43aeeb
pkg/report: add simplistic fuchsia reporter
2018-06-06 16:29:59 +02:00
Dmitry Vyukov
9820e1cae6
pkg/report: more "NMI handler took too long" ignores
2018-06-06 10:02:03 +02:00
Dmitry Vyukov
3f4f3d5ec9
pkg/report: ignore INFO messages about long interrupts
2018-06-04 12:07:28 +02:00
Dmitry Vyukov
b9fea20df7
pkg/report: remove duplicated stub code
...
Update #538
2018-05-07 13:05:41 +02:00
Dmitry Vyukov
c7f6891ca7
pkg/report: reformat code
...
There is some regression in Go formatting on tip.
I am constantly getting diffs after formatting.
Filed: https://github.com/golang/go/issues/25161
2018-04-29 12:04:22 +02:00
Dmitry Vyukov
190d92e056
sys/linux: extend namespace desciptions
...
Slightly extend namespace descriptions and move
them to a separate file.
2018-04-27 18:47:58 +02:00
Dmitry Vyukov
0008f52678
pkg/report: fix remaining lockdep report formats
...
We fixed only 1, but new format affects all lockdep reports.
Fix all of them.
2018-04-27 15:44:47 +02:00
Dmitry Vyukov
d0b7645387
pkg/report: few report parsing fixes for linux
2018-04-26 14:46:16 +02:00