Commit Graph

183 Commits

Author SHA1 Message Date
Dmitry Vyukov
307deaee5e dashboard/app: add space between colon and url in bug emails
As asked by Peter Zijlstra: "the lack of whitespace between "repro:"
and the URL makes it hard to copy paste".

We keep lines below 78 colons because otherwise some email clients will reflow them.
And also we want it all properly aligned as asked by Ted Ts'o.
So shorten "syzkaller repro" to "syz repro".
2018-08-24 22:11:46 +02:00
Dmitry Vyukov
e02ac807a0 dashboard/app: show recent crashes first after time sorting 2018-08-24 20:39:37 +02:00
Dmitry Vyukov
8ec5fc8d3c dashboard/app: add fragment links for jobs/managers and bug sections 2018-08-24 20:20:32 +02:00
Kees Cook
9b0f5c758d dashboard/app: Add anchor links for BugNamespaces
To make it possible to provide URLs that jump to a specific BugNamespace,
this adds clickable anchors for each of the BugNamespaces without changing
the current appearance of the h2 tag.
2018-08-24 10:55:51 -07:00
Dmitry Vyukov
e1dda36ed9 dashboard/config: enable UHID and USERIO 2018-08-15 00:10:11 +02:00
Dmitry Vyukov
44944d8c80 dashboard/config: enable KMSAN in KMSAN config
Somehow it ended up being turned off.
2018-08-10 13:56:04 +02:00
Dmitry Vyukov
b24fab5550 dashboard/app: refactor incomingCommandTx
Factor out actual command handling out of incomingCommandTx.

Update #538
2018-08-02 16:57:31 +02:00
Dmitry Vyukov
9b488fad5e dashboard/app: refactor addTestJob
Factor request checking from addTestJob into checkTestJob.

Update #538
2018-08-02 16:57:31 +02:00
Dmitry Vyukov
906c09c71a dashboard/app: simplify reportCrash
Factor crash saving out of reportCrash into saveCrash.

Update #538
2018-08-02 16:57:31 +02:00
Dmitry Vyukov
c67a9331a4 gometalinter: clean up some errcheck warnings
Check some errors where relevant.
Unfortunately enabling errcheck does not look feasible, too many warnings.

Update #538
2018-08-02 16:57:31 +02:00
Dmitry Vyukov
8ef497b652 gometalinter: clean up vetshadow
This just cleans up existing warnings.
vetshadow is not enabled yet because it crashes.

Update #538
2018-07-31 20:38:33 +02:00
Dmitry Vyukov
91154fa55c dashboard/app: refactor config checking
Split a very long function into several smaller functions.

Update #538
2018-07-31 18:43:50 +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
3abee99f46 dashboard/app: fix crash selection for reporting
See the issue for the problem description.
Include repro level into reporting priority,
so that we can order by just it during selection
and ignore ReproC/ReproSyz.

Fixes #634
2018-07-27 21:10:01 +02:00
Dmitry Vyukov
9b6bfa3fe8 dashboard/app: don't show broken links to empty configs 2018-07-24 14:29:21 +02:00
Dmitry Vyukov
daf70d7973 dashboard/config: disable CONFIG_DRM_AMDGP
Causes build failures:
https://syzkaller.appspot.com/bug?extid=9118f0a7ae77f4eee4a9
and we don't test it anyway.

While we are here disable other GPUs
and update config to latest version.
2018-07-24 14:28:01 +02:00
Dmitry Vyukov
809256c36c dashboard/config: add fs.mount-max = 100 sysctl
See "mnt: Add a per mount namespace limit on the number of mounts"
commit for details.
2018-07-18 11:14:00 +02:00
Dmitry Vyukov
7cfcfa6a73 sys/akaros: disable init_arsc syscall
It unconditionally crashes kernel now.
2018-07-16 16:57:35 +02:00
Dmitry Vyukov
3855819991 dashboard/config: enable CONFIG_DEBUG_AID_FOR_SYZBOT 2018-07-12 12:38:36 +02:00
Dmitry Vyukov
00c977447d dashboard/config: add akaros kernel config 2018-07-06 16:45:21 +02:00
Dmitry Vyukov
d3b2a0e212 dashboard/config: tune kernel timeouts
See #516 for description of the problem.

The new scheme is:

1. RCU stalls the highest priority.
CONFIG_RCU_CPU_STALL_TIMEOUT=100
which results in stalls detected after 100-101 secs.

2. Then softlockup detector.
kernel.watchdog_thresh = 55 (sysctl)
which surprisingly detects stalls after 110-132 secs.

3. Then hung tasks and workqueue stalls.
Unfortunately we can't separate them because that would
require setting "no output" timeout to 10+ minutes.
workqueue.watchdog_thresh=140 (cmdline)
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=140
Both are detected after 140-280 secs.

4. Finally, "no output" crashes.
Detected by vm.MonitorExecution after 300 secs.

Fixes #516
2018-07-05 17:43:41 +02:00
Dmitry Vyukov
435ca9c587 dashboard/config: update kernel configs
Update to latest kernel.
2018-07-05 17:41:06 +02:00
Daniel Borkmann
3a35170a24 bpf: disable hardening in favor of unwinding
I had missed that once hardening is enabled, it automatically disables
any exposure of JITed addresses, therefore when crashes or warnings are
thrown we don't unwind beyond a helper function. For now disable hardening.

After merge window I'll see if it's possible to detangle the case where
kernel queries kallsyms internally to find function names whenever a WARN
or BUG is thrown. If that's not possible easily, we can potentially add a
harden mode 3 which does hardening but does not disable kallsyms exposure
and then set this here for tools like syzkaller.

Fixes: ac9b19d2e4 ("bpf: enable hardening mode 1 for jited images")
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>

[dvyukov: also updated dashboard/config/upstream.sysctl]
2018-07-05 10:48:20 +02:00
Dmitry Vyukov
b9f93868ed dashboard/app: use CCYY/MM/DD hh:mm format
Since dateSort does not take years into account, Time field of long-standing
bugs is not sorted correctly. Also, it will become more useful to
include year of closed date after we operate the dashboard for some years.
Thus, this patch changes the format of formatTime method, and use textSort
for sorting.

Based on patch by Tetsuo Handa.
2018-07-02 14:44:14 +02:00
Dmitry Vyukov
9efa2eab69 dashboard/app: allow empty CompilerID in Build
Some OSes don't require a compiler.
2018-06-29 13:03:51 +02:00
Dmitry Vyukov
dba0b50e78 dashboard/app: fix gometalinter warning
dashboard/app/api.go:390:28⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
2018-06-28 10:02:52 +02:00
Dmitry Vyukov
43da5e3a1b pkg/vcs: move from pkg/git
Rename pkg/git to pkg/vcs because we need to support not only git.
2018-06-27 13:07:03 +02:00
Dmitry Vyukov
7bdf6e025f dashboard/app: fix table sorting on firefox
Under Firefox 60 browser, sort operation does not work and

  ReferenceError: event is not defined

error message is printed in the Web Console window.
Let's explicitly pass an object reference to the sortTable function.

Credit goes to Tetsuo Handa.
2018-06-19 13:07:54 +02:00
Dmitry Vyukov
cb052d780d
Create README.md 2018-06-11 11:37:34 +02:00
Dmitry Vyukov
12d131d7d8 dashboard/config: add syzbot configs 2018-06-11 11:32:02 +02:00
Dmitry Vyukov
9cff2eb96a dashboard/app: attach fixing commits to canonical bugs
Fixes #615
2018-06-11 12:12:01 +03:00
Dmitry Vyukov
b30b1136b6 dashboard/app: try 1 repro per day until we have at least syz repro
Bugs without repros are not actionable sometimes.

Fixes #627
2018-06-11 12:12:01 +03:00
Dmitry Vyukov
a742909665 dashboard/app: move repro tests for separate file 2018-06-11 12:12:01 +03:00
Dmitry Vyukov
848d746cf5 dashboard/app: use helper functions in tests
Update #606
2018-06-11 12:12:01 +03:00
Dmitry Vyukov
952c799453 dashboard/app: refactor tests
Use standard dashboard client provided by dashapi package in tests.
Switch everything to use the client instead of API method.

Fixes #606
2018-06-11 12:12:01 +03:00
Dmitry Vyukov
d6ae9b9739 dashboard/app: simplify config deployment
Currently one needs to switch between config_stub.go and prod
config back and forth on every deployment. This is very
inconvinient. Rework config, so that switching is not necessary.
2018-06-11 12:12:01 +03:00
Dmitry Vyukov
83f945db79 dashboard/app: fix old crash purging logic
NumRepro includes failed repro attempts,
so we should not look at it when purging old crashes.
2018-06-08 10:00:42 +02:00
Dmitry Vyukov
1319a7da09 dashboard/app: fix crash save throttling logic
bug.LastTime is updated on every crash, even if we don't save it.
As the result we did not save recent crashes for popular bugs at all.
Fix this by introducing bug.LastSavedCrash.
2018-06-08 09:34:02 +02:00
Dmitry Vyukov
c7c5314649 dashboard/app: make it possible to provide links to subsections
E.g.:

https://syzkaller.appspot.com/#upstream-open
https://syzkaller.appspot.com/#upstream-pending
2018-05-16 14:58:46 +02:00
Dmitry Vyukov
68ce85f1a9 dashboard/app: reformat code 2018-05-15 13:24:37 +02:00
Dmitry Vyukov
03258b9e7f dashboard/app: remove most details from email footer
Exact details of syzbot communication change over time,
so it's a bad idea to hardcode them in each email.
Full details are also quite lengthy, so we can't express
all of them in each email header. And providing partial
info may be worse than just providing a link to full info.

So remove most details from email footer,
and just give links to documentation.

Also clarify docs re when "syz fix" should/can be used.
2018-05-15 10:14:51 +02:00
Dmitry Vyukov
b911ff2c90 dashboard/app: split overly long function
Update #538
2018-05-07 16:49:42 +02:00
Dmitry Vyukov
cda1fcb742 sys: dedup mmap code across OSes
Update #538
2018-05-06 16:58:38 +02:00
Dmitry Vyukov
08141db61a gometalinter: enable line length checking
120 columns looks like a reasonable limit
and requires few changes to existing code.

Update #538
2018-05-04 14:24:51 +02:00
Dmitry Vyukov
4c24e4a467 gometalinter: enable package comment checking
Update #538
2018-05-03 13:53:01 +02:00
Dmitry Vyukov
8180779d1d dashboard/app: cleanup and tidy email reports
Align all info into nice table.
Shorten links a bit.
Remove some non-strictly-necessary info.
Rework some texts.

Fixes #565
2018-05-03 12:24:38 +02:00
Dmitry Vyukov
0bad1c56e8 dashboard/app: make it possible to restrict test repos
Normally instances can test patches on any tree.
However, some (e.g. non-upstreamed KMSAN) can test only on a fixed tree.
RestrictedTestingRepo contains the repo for such instances
and RestrictedTestingReason contains a human readable reason for the restriction.

Fixes #567
2018-04-24 14:30:32 +02:00
Dmitry Vyukov
2e579571e0 dashboard/app: refactor manager info in config
In preparation for future changes.
2018-04-24 13:58:56 +02:00
Dmitry Vyukov
9366d03f00 dashboard/app: allow testing fixes on exact commit and without patch
This implements 2 features:
1. It's now possible to specify exact commit when testing as:

2. It's possible to test without patch attached
assuming the patch is already committed to the tested tree.

Fixes #558
2018-04-24 13:23:01 +02:00
Dmitry Vyukov
802ac9125d dashboard/app: fix error link in emails
Fixes #559
2018-04-16 11:46:10 +02:00