Commit Graph

1258 Commits

Author SHA1 Message Date
Dmitry Vyukov
a28999b4c6 vendor: update all packages
google.golang.org/api/compute/v0.beta again changed public interfaces
which causes breakages in other build environments.
Update everything to HEAD.
2017-08-08 10:54:24 +02:00
Emmanuel Odeke
ec649f0f94 .travis.yml: use go1.9rc1 since aliases trip gofmt for vendored code
For https://github.com/golang/go/issues/21337.

Since the introduction of aliases is in Go1.9 but Go1.9 hasn't
yet been officially released, let's use go1.9rc1 which is supported
on Travis CI by their Go version getter gimme
https://github.com/travis-ci/gimme
instead of against go1.8.1. This solves the problem on which
our vendored code is updated using Go1.9* syntax but is running
against Go1.8* in Travis CI tests.
2017-08-08 10:36:11 +02:00
Dmitry Vyukov
77a9ec9ba5 syz-manager: don't ask for repros if reproducing is not enabled 2017-08-07 16:58:18 +02:00
Dmitry Vyukov
a8561e92f3 syz-manager: don't save/send to dashboard repros from hub 2017-08-07 16:40:18 +02:00
Dmitry Vyukov
1e3a94a731 syz-manager: send more info with repros
Leave at least some traces of the original crash
when sending repros to hub.
2017-08-07 15:37:21 +02:00
Dmitry Vyukov
8af91f61b4 syz-manager, syz-hub: share repros between managers via hub
Currently hub allows managers to exchange programs from corpus.
But reproducers are not exchanged and we don't know if a crash
happens on other managers as well or not.

Allow hub to exchange reproducers.

Reproducers are stored in a separate db file with own sequence numbers.
This allows to throttle distribution of reproducers to managers,
so that they are not overloaded with reproducers and don't lose them on restarts.

Based on patch by Andrey Konovalov:
https://github.com/google/syzkaller/pull/325

Fixes #282
2017-08-07 15:28:59 +02:00
Dmitry Vyukov
c7434a4081 sys: improve ipv6 descriptions
1. Use proc type for fragment identifiers.
2. Remove dups from ipv6_types.
3. Fix ipv6_fragment_ext_header layout.
2017-08-07 10:58:51 +02:00
Dmitry Vyukov
d23bf3250e dashboard/app: fix report_failed_repro api call
We are seeing the following errors in this handler:
cross-group transaction need to be explicitly specified, see TransactionOptions.Builder.withXG
2017-08-04 19:19:43 +02:00
Andrey Konovalov
08a7078aab Update linux_kernel_reporting_bugs.md 2017-08-03 19:11:58 +02:00
Andrey Konovalov
35e1c3cdb5 Update linux_kernel_reporting_bugs.md 2017-08-03 14:36:28 +02:00
Dmitry Vyukov
5766dbe796 syz-dash, syz-gce: remove
This is now superseded by dashboard/app and syz-ci.
2017-08-02 19:50:48 +02:00
Alexander Potapenko
695046b738 Merge pull request #320 from ramosian-glider/submit-mmap
prog: don't mutate mmap() calls too often
2017-08-02 08:51:05 -07:00
Dmitry Vyukov
44347e8742 dashboard/app: purge at most 10 crashes at once
We see some episodic
"failed to delete old crash texts: Call error 11: Deadline exceeded (timeout)"
errors in logs.
Deleting at most 10 bugs should be enough since we do this check
after adding each new crash.
2017-08-02 16:37:42 +02:00
Alexander Potapenko
77825d061d prog: don't mutate mmap() calls too often
Due to https://github.com/google/syzkaller/issues/316 there're too many
mmap() calls in the programs, and syzkaller is spending quite a bit of
time mutating them. Most of the time changing mmap() calls won't give
us new coverage, so let's not do it too often.
2017-08-02 16:20:28 +02:00
Dmitry Vyukov
61d1beb284 dashboard/app: new dashboard app
The new app is based on our experience with syz-dash
and is meant to supersede it. This app aims at full
automation of bug lifecycle: reporting, tracking updates,
closing fixed bugs.
The main differences are:
 - this app has support for reporting bugs
   either by email or using an arbitrary external reporting system
 - this app tracks status of bugs
 - this app captures more info about kernel builds
2017-08-02 15:11:03 +02:00
Andrey Konovalov
9c30744297 Merge pull request #302 from xairy/fix-kvm
sys: fix KVM_RUN ioctl
2017-08-01 21:21:33 +02:00
Andrey Konovalov
29ceeb1daf sys: fix KVM_RUN ioctl
KVM_RUN ioctl must have arg set to 0, otherwise it returns EINVAL.

This can lead to syzkaller not able to generate a C repro.
Since arg value is undefined, it might have different values when
executing a program with syz-exeprog vs executing a compiled C repro.
2017-08-01 19:19:05 +02:00
Andrey Konovalov
1517bd9548 prog: generate missing syscall args when decoding
After a change in syscall description the number of syscall arguments
might change and some of the programs in corpus get invalidated.

This change makes syzkaller to generate missing arguments when decoding a
program as an attempt to fix and keep more programs from corpus.
2017-08-01 19:19:05 +02:00
Andrey Konovalov
890882a0cf Merge pull request #317 from xairy/up-fix-result-enc
prog: fix encoding for exec of result args
2017-08-01 18:55:46 +02:00
Andrey Konovalov
1172db0ccf prog: fix encoding for exec of result args
ResultArg might have const value.

Also add a test.
2017-08-01 18:38:20 +02:00
Dmitry Vyukov
954d506c30 syz-ci: support additional syscall descriptions
Add new "syzkaller_descriptions" config param that allows
to specify a dir with additional syscall descriptions
that will be copied on top of syzkaller checkout.
2017-08-01 18:25:18 +02:00
Dmitry Vyukov
75f1e83f8b vm/gce: another attempt to fix trimmed console output
We still see trimmed reports even with the "serialport" grep.
Add a 5 second sleep in an attempt to fix it.
2017-08-01 18:25:18 +02:00
Andrey Konovalov
0b4392111b Merge pull request #314 from xairy/up-fix-splice
prog: properly remove calls when splicing progs
2017-08-01 18:15:26 +02:00
Andrey Konovalov
493773c70d prog: properly remove calls when splicing progs
Use removeCall() to update use references.

Also add a test and speed up other ones.
2017-08-01 15:57:03 +02:00
Dmitry Vyukov
032fb6f70a syz-ci: send commits to dashboard
Dashboard needs to know when bug fixing commits reach
builders in order to fully close bugs.
Send commits that dashboard is interested in to dashboard.
2017-07-28 20:14:24 +02:00
Andrey Konovalov
c579f3e612 readme: add travis-ci status 2017-07-28 14:20:59 +02:00
Andrey Konovalov
60fa4c2397 Merge pull request #305 from xairy/up-travis
Initial travis-ci integration
2017-07-28 13:37:28 +02:00
Andrey Konovalov
8d3403cdcc buildbot: add .travis.yml
Also change .clang-format to support older versions of the tool.
2017-07-28 13:25:48 +02:00
Andrey Konovalov
3eefb3bce6 makefile: cleanup
- fix and reorder .PHONY targets
- `make all` now builds everything, to build only essentials run `make main`
- `make all-tools` rename to `make tools`
2017-07-28 12:56:20 +02:00
Dmitry Vyukov
75342d238b dashboard/dashapi: add support for bug fixing commits 2017-07-27 17:02:47 +02:00
Andrey Konovalov
bbd1f3487b pkg/repro: fix null-ptr-deref when res is nil
res can become nil if one of the repro routines fails with an error.
2017-07-27 14:48:21 +02:00
Andrey Konovalov
240fb175d9 Merge pull request #301 from xairy/up-fix-repro
pkg/repro: fix simplifying threaded flag
2017-07-26 15:12:45 +02:00
Andrey Konovalov
3f5c8df22d pkg/repro: fix simplifying threaded flag 2017-07-26 15:07:07 +02:00
Dmitry Vyukov
da1dd22e48 vm/gce: fix truncated console output
Sometimes we get truncated console output during repro.
The problem is that we start the console reading ssh command,
but do not wait for it to actually connect and start piping console.
Wait while the command actually starts piping console before
starting the target command.
2017-07-25 20:32:31 +02:00
Dmitry Vyukov
841aeb0303 dashboard/dashapi: always zero reply
json decoding behavior is somewhat surprising
(see // https://github.com/golang/go/issues/21092).
This behavior is especially easy to hit in tests
that reuse reply objects.
To avoid any surprises, we zero the reply.
2017-07-25 20:25:53 +02:00
Dmitry Vyukov
4f5ad2aa53 dashboard/dashapi: add link to BugUpdate and BugUpdateReply type 2017-07-25 20:25:05 +02:00
Dmitry Vyukov
df92da0d0e dashboard/dashapi: don't send manager name in crashes
We already have manager name in Build and Crash references Build.
2017-07-25 20:23:37 +02:00
Dmitry Vyukov
68c70116f3 pkg/symbolizer: fix race on inputr in test
Pointed out by race detector.
2017-07-25 10:52:35 +02:00
Andrey Konovalov
c70b8a2cff pkg/report: fix symbolization of old KASAN stack trace format
Which has a tab instead of a space at the beginning of each frame
in alloc and free stack traces.
2017-07-24 20:50:42 +02:00
Andrey Konovalov
7b42b1cf9e Merge pull request #299 from xairy/up-better-docs
docs: small fixes
2017-07-24 19:46:09 +02:00
Andrey Konovalov
1bf4de5647 docs: small fixes 2017-07-24 18:23:04 +02:00
Andrey Konovalov
6bbb0ce7e4 Merge pull request #297 from xairy/up-fix-enconding
prog: return error instead of panic when parsing
2017-07-24 16:43:50 +02:00
Andrey Konovalov
2b21a44565 prog: return error instead of panic when parsing 2017-07-24 16:37:24 +02:00
Andrey Konovalov
1e06f3e00f Merge pull request #274 from xairy/up-better-repro
Improve C repros
2017-07-24 14:34:34 +02:00
Andrey Konovalov
0d9ae38d5d pkg/repro: disable Debug flag by default 2017-07-24 14:31:25 +02:00
Andrey Konovalov
e83310d8a2 pkg/csource: make all usleeps random
We can't know the exact values of those sleeps in advance, they can be
different for different bugs. Making them random increases the chance that
the C repro executes with the right timings at some point.
2017-07-24 14:22:54 +02:00
Andrey Konovalov
65a2d5fb58 pkg/repro: try extracting C repro before simplifying options
Sometimes C reproducers don't work after the generic prog options were
simplified. This change makes syzkaller to try extracting a C repro before
simplifying prog options and after each simplification step. This gives
us more chance to generate a C reproducer.
2017-07-24 14:22:54 +02:00
Dmitry Vyukov
87f9bdb868 dashboard/dashapi: add customizable Qeury function
Query is useful for tests and other contexts
where non-standard request creation/sending is necessary.
2017-07-21 12:43:09 +02:00
Dmitry Vyukov
0f42bbec24 syz-ci: extend dashboard interface
1. Add manager name to builds.
2. Add centralized logging.
3. Add types for bug reports and bug updates.
2017-07-21 10:06:46 +02:00
Dmitry Vyukov
1a3751c444 syz-ci: save previous manager log
If manager exits during start, it's hard to understand what happens.
Save the previous manager log as manager.log.old until we have a better solution.
Also log errors on 0 log level.
2017-07-21 10:06:46 +02:00