Commit Graph

471 Commits

Author SHA1 Message Date
Dmitry Vyukov
496a08ae32 dashboard/app: introduce notion of "decommissioned" namespaces
Decommissioned namespaces are not actively tested, no notifications are sent, etc.
UI is somewhat different, we don't want about broken builds, etc.
They are kept mostly read-only for historical reference.
2020-04-29 13:14:07 +02:00
Dmitry Vyukov
d397d49acd dashboard/app: remove old namespace redirects
We kept redirects from old URLs for more than a year.
It's time to remove them. Old links, if they still exist,
need to be updated sooner or later.
2020-04-29 13:07:43 +02:00
Dmitry Vyukov
ba2806dbc6 dashboard/app: add help link for coverage reports 2020-04-29 09:09:35 +02:00
Andrey Konovalov
03d97a1bcd dashboard/config: update android/config-5.4 2020-04-23 18:56:40 +02:00
Andrey Konovalov
11ab92d01e dashboard/config: update upstream-usb.config 2020-04-23 18:56:40 +02:00
Andrey Konovalov
fdf8134e77 dashboard/config: add more android configs 2020-04-23 18:56:40 +02:00
Andrey Konovalov
b9233cab41 dashboard/config, sys/linux: update usb config 2020-04-23 16:47:51 +02:00
Andrey Konovalov
fabe518e91 dashboard/config: update usb config generation script 2020-04-23 16:47:51 +02:00
Ayushi Sharma
98a9f9e692
dashboard/config: update NetBSD configs (#1685) 2020-04-20 20:33:50 +02:00
Dmitry Vyukov
3455154b93 dashboard/config/distro: add ChromeOS Crostini VM config 2020-04-06 08:40:06 +02:00
Dmitry Vyukov
9a5264054c
dashboard/app: add instructions on how to update the scheme 2020-04-03 10:49:59 +02:00
Jukka Kaartinen
490e527b51 docs: Add map of the syzbot setup
Add mind map image of the syzbot setup to show how
peaces are connected.

Signed-off-by: Jukka Kaartinen <jukka.kaartinen@unikie.com>
2020-04-03 10:42:34 +02:00
Andrey Konovalov
a34e2c3324 dashboard/config: update USB config to 5.6 2020-03-31 19:15:37 +02:00
Andrey Konovalov
4093d25cc9 dashboard/config: enable usb configs on android-5.4 2020-03-31 19:15:37 +02:00
Andrey Konovalov
283f3ca630 dashboard/config: update android-5.4 config 2020-03-31 19:15:37 +02:00
Dmitry Vyukov
c8d1cc20df tools/create-gce-image.sh: enable sysctl.kernel.hung_task_all_cpu_backtrace=1
The format of this knob has changed again:
https://groups.google.com/d/msg/syzkaller/EJP7uvY4O-c/XLrhrBqGAQAJ
2020-03-30 10:55:36 +02:00
Andrey Konovalov
fd6a38e1fc tools, dashboard: move net.ifnames=0 to create-gce-image.sh
Looks like it affects not only android-5.4.
2020-03-28 12:29:27 +01:00
Dmitry Vyukov
831e9a81a6 dashboard/app: update docs 2020-03-27 10:43:05 +01:00
Dmitry Vyukov
9b6ecd9356 dashboard/app: fix tests hang
This is ugly but without this go test hangs with:

panic: Metadata fetch failed for 'instance/attributes/gae_backend_version':
	Get http://metadata/computeMetadata/v1/instance/attributes/gae_backend_version:
	dial tcp: lookup metadata on 127.0.0.1:53: no such host

It's unclear what's the proper fix for this.

It used to work for me for ridiculous reasons only:
somebody provided metadata host which returned errors,
but since nobody cares what's in the returned response
and no error checking whatsoever, it somehow did not crash...
2020-03-27 10:43:05 +01:00
Andrey Konovalov
9af8b4b30b dashboard/config: disable network interface renaming on android-5.4
Using Debian Stretch image in combination with android-5.4 kernel results
in eth0 being renamed to e.g. enp0s4 by virtio_net driver, which breaks
our startup scripts. Disable network interface renaming via a kernel
commandline argument.
2020-03-27 06:58:53 +01:00
Andrey Konovalov
ff9f28fce0 dashboard/config: enable e1000 driver in bits-syzbot.config
QEMU vm currently uses e1000 as the network model. Update android-5.4
config, the rest already has CONFIG_E1000 enabled.
2020-03-27 06:58:53 +01:00
Dmitry Vyukov
9fa8161a2c dashboard/config: set hung_task_all_cpu_backtrace=1
See https://lkml.org/lkml/2020/3/23/973
We still want the backtraces.
2020-03-24 08:46:17 +01:00
Dmitry Vyukov
05359321bb all: fix new golangci-lint warnings
Newer version started producing more warnings. Fix them.
2020-03-13 08:26:02 +01:00
Dmitry Vyukov
d850e9d084 dashboard/config: update linux config to latest linux-next 2020-03-11 19:00:53 +01:00
Dmitry Vyukov
850c989d4f dashboard/config: update linux config to 5.6.0-rc4 2020-03-05 17:50:17 +01:00
Andrey Konovalov
251aabb77e dashboard/config: switch to ORC unwinder
Jann pointed out that the frame pointer unwinder fails to unwind double
fault stacks. Switch to using the ORC unwinder instead.

https://www.kernel.org/doc/html/latest/x86/orc-unwinder.html

Suggested-by: Jann Horn <jannh@google.com>
2020-02-26 13:28:48 +01:00
Christoph Paasch
1ce142dcc7 dashboard/config: Add CONFIG_MPTCP to default configs and update to 5.6-rc1 2020-02-17 19:32:41 +01:00
Dmitry Vyukov
a416e6ee33 dashboard/app: remove stub test
This is not needed anymore since we don't have build tags on all test files.
2020-02-17 10:12:32 +01:00
Dmitry Vyukov
2b41159686
dashboard/config: add instructions on updating linux config 2020-02-17 06:27:36 +01:00
Andrey Konovalov
084454aecd dashboard, sys: update USB config 2020-02-11 02:19:31 +01:00
Dmitry Vyukov
5ed23f9aa6 dashboard/app: skip tests if dev_appserver.py is missing
Travis is not the right check. We also don't have dev_appserver.py
anywhere on syzbot, so builds fail. Check presence of dev_appserver.py
explicitly.
2020-01-29 16:15:37 +01:00
Dmitry Vyukov
0c6a2c3328 dashboard/app: disable tests on Travis
This is very frustrating. Testing with 'go test' does not really work.
All tests fail with:
util_test.go:51: Could not find dev_appserver.py: exec: "dev_appserver.py": executable file not found in $PATH
And I can't even now find a way to download this dev_appserver.py thing.

Update #1461
2020-01-29 16:01:06 +01:00
Dmitry Vyukov
b190f06061 dashboard/app: fix testing for go1.11 runtime
0. Remove aetest build tag. We don't need it anymore, go test should work.
1. IsDevAppServer does not return true in tests anymore, so don't use it
2. Use a different mechanism to register test/prod config.
We don't have aetest tag anymore, so we need something even more dynamic.
3. Fix new golangci-lint warnings: all test files are checked now.

Update #1461
2020-01-29 16:01:06 +01:00
Andrew Donnellan
c7484f6292 dashboard: update to go111 runtime
The old go 1.9 App Engine runtime is now deprecated. Update to the go 1.11
runtime, which still allows us to use the old App Engine library (removed
in the 1.12 runtime).

Closes: #1461 ("dashboard: port app to go111/go112 runtime")
Signed-off-by: Andrew Donnellan <ajd@linux.ibm.com>
2020-01-29 16:01:06 +01:00
Dmitry Vyukov
1079ec0d3f dashboard/config: disable CONFIG_EFI
It's build-broken:
https://syzkaller.appspot.com/bug?id=0b475699da0ed3c89a82bade3f11497af4f12b07
and we don't seem to use/test it in any way (?).
2020-01-27 15:04:50 +01:00
Dmitry Vyukov
f4e7270e33 sys/linux: extend DRM ioctl descriptions
+ disable binderfs (see comments)
+ add few more missing tty ioctls
+ improve few minor things in hci descriptions
2020-01-25 22:30:06 +01:00
Andrey Konovalov
4c04afaa19 dashboard/config: update USB config 2020-01-10 15:46:17 +01:00
Dmitry Vyukov
29253134f2 dashboard/config: disable CONFIG_DEBUG_KOBJECT
This config only adds debug output, this is not useful for fuzzing.
2020-01-10 15:43:43 +01:00
Andrey Konovalov
532ec44e8d dashboard/config: update USB config 2020-01-10 15:21:05 +01:00
Dmitry Vyukov
2e0a9b2b70 dashboard/config: add Android 5.4 configs 2020-01-10 15:12:56 +01:00
Dmitry Vyukov
0e9d69622b dashboard/config: s/=m/=y/ in Android 5.4 config
Again to make the next diff more useful.
2020-01-10 15:12:56 +01:00
Dmitry Vyukov
fd4b785fbb dashboard/config: add Android 5.4 olddefconfig
This is just a result of running olddefconfig over arch/x86/configs/gki_defconfig.
Again to make the next diff more useful.
2020-01-10 15:12:56 +01:00
Dmitry Vyukov
9734d8e285 dashboard/config: add Android 5.4 baseline config
This config is incomplete and is unusable by syzbot.
But adding this file first will make diff for the real
config submitted in the next commit useful.
2020-01-10 15:12:56 +01:00
Dmitry Vyukov
f1d60fec2a dashboard/config: refactor config generation scripts
Refactor config generation scripts in preparation for generating Android configs.
2020-01-10 15:12:56 +01:00
Andrey Konovalov
6738e0b30b dashboard/config: disable magic sysrq entirely
It can be reached over tty as well and those path ignore the sysrq_enabled
setting.
2020-01-07 16:17:17 +01:00
Andrey Konovalov
28206bb69a dashboard/config: properly extract non tristate config values
The USB config extraction script properly works with symbols that
are either enabled as =m or =y or disabled. This change adds support
for hex, int and string symbol types. (The current distro config used
for USB config generation doesn't contain any values of those types yet.)
2020-01-05 16:21:57 +01:00
Dmitry Vyukov
1bd353000d dashboard/config: update linux config
Enable AFS.
Enable PHONET (enabled in Debian).
Enable IEEE802154_FAKELB (may allow us to reach some of IEEE802154 code).
Enable USB4.
Enable some misc networking configs.
2020-01-03 16:11:49 +01:00
Dmitry Vyukov
240ba66ba8 dashboard/config: update upstream-kasan.config to next-20191218 2019-12-18 11:27:18 +01:00
Andrey Konovalov
a6bc9c88b9 dashboard/config: update USB config extraction
Currently the config extraction script can produce an incorrect result, when
one of the configs enables a particular config option, but some other one
doesn't. This change fixes the issue.
2019-12-17 16:27:24 +01:00
Andrey Konovalov
b80769fcdd dashboard/config: disable magic sysrq by default
Also don't try to enable GadgetFS, as it can't be enabled with Raw Gadget.
2019-12-16 16:49:11 +01:00
Anton Lindqvist
5b2ca5dad8 dashboard/config: enable KQUEUE_DEBUG on OpenBSD
Recently introduced used to validate correctness of kqueue event lists.
2019-12-13 20:25:07 +01:00
Dmitry Vyukov
0d368675f8 dashboard/app: report newer crashes in the next reporting
We used to report the newest crash long time ago.
Then we switched to preserving the crash across reporting
stages b/c what reaches next stage may be not what was
sent upstream in the previous one.
However, it seems to cause more problems now than it solves.
Crash classification become much better + some backlog
of bugs was clearer, so we don't have that may glued bugs.
However, in some cases we report notoriously old crashes
which is bad. Switch to the newest crash agian.
Let's see how this works now.
2019-12-11 11:05:32 +01:00
Andrey Konovalov
5a5826a14e sys/linux, dashboard: update USB config and IDs 2019-12-10 12:45:34 +01:00
Dmitry Vyukov
43c501b983 dashboard/config: enable few more linux configs
CONFIG_LOGO_LINUX_MONO=y
CONFIG_LOGO_LINUX_VGA16=y
CONFIG_NFSD_V4_2_INTER_SSC=y
2019-12-07 18:45:07 +01:00
Dmitry Vyukov
85f267515d dashboard/config: fix netbsd kmsan config 2019-12-06 16:55:10 +01:00
Siddharth M
12c3b6cd9a pkg/build: add support to build the NetBSD kernel with KMSan
* Initial KMSan commit
* pkg/buil: kmsan cleanup
* pkg/build: Modify the logic slightly
2019-12-06 11:28:19 +01:00
Dmitry Vyukov
799e6ffbbe dashboard/app: enable few more tty/console-related configs for linux 2019-12-03 18:48:14 +01:00
Dmitry Vyukov
b5e3232432 dashboard/config: enable more configs
Enable some input configs that may be reachable in qemu.
+NVMEM: reachable in qemu
+BINDERFS
2019-12-02 17:58:15 +01:00
Dmitry Vyukov
6e4aeffeda dashboard/config: enable CIFS and OCFS2_FS
We have some descriptions for them and enabled in debian.
2019-11-29 15:02:42 +01:00
Dmitry Vyukov
6239d724ad dashboard/config: update linux/kasan config
1. Update to latest linux-next (next-20191129).
2. Enable NVMEM/PMEM.
3. Enable new crypto algs.
4. Enable VMAP stacks (yay!).
2019-11-29 10:46:26 +01:00
Dmitry Vyukov
861a5980df dashboard/config: disable CONFIG_DEBUG_INFO_BTF
CONFIG_DEBUG_INFO_BTF started breaking build,
see details in add comments.
2019-11-28 09:32:06 +01:00
Dmitry Vyukov
0d63f89cab syz-ci: allow enabling bisect cause and fix jobs separately
Some backport-only kernels may only be interested in fix bisections.
Allow enabling these separately.
2019-11-27 16:40:04 +01:00
Dmitry Vyukov
6f7be11fa1 dashboard/app: don't report bisections pointing to release commits
They should have been detected by "same binary" logic.
But the problem is that we may use different compilers
for different commits and they switch exactly at release commits.
So we can build the release with a differnet compiler than the
rest of commits and then obviously it won't be "same binary".
Detect release commits separately.

Update #1271
2019-11-27 14:05:14 +01:00
Dmitry Vyukov
be8c51d3d9 dashboard/app: fix creation of bisection jobs
We limited the bugs query for bisection jobs at 300 bugs,
but that's not enough in presence of multiple namespaces.
Some namespaces did not get any bisections because all
bugs belonged to other namespaces/managers.
Fetch all bugs to fix this.

While we are here also simplify check for bisection crashes:
now we have FixBisectionDisabled as a property of manager,
so we don't need to fetch the crash build to check it.
2019-11-15 09:48:06 +01:00
Dmitry Vyukov
048f2d494e dashboard/app: close bugs that we won't fix bisect sooner
Add logic to do the subj.
But it's not enabled yet b/c we need to figure out what to do with KMSAN.
It's different from, say, linux-next.
2019-11-11 17:03:41 +01:00
Marco Elver
377d77fa57 dashboard/config: Update KCSAN config to be more conservative 2019-11-11 16:23:03 +01:00
Dmitry Vyukov
dc438b91de dashboard/app: enable fix bisection to external reporting
Update #1371
2019-11-08 13:40:46 +01:00
Dmitry Vyukov
560ebad5b0 dashboard/app: move FixBisectionDisabled from repo to manager
We have manager in more places (bug, job, etc),
but usually we don't have repo directly (this
always requires loading build). Move FixBisectionDisabled
to manager for easier access, e.g. we will be able to easily
check if a bug happened only on managers with fix bisection
disables, which is currently quite problematic.
2019-11-08 13:38:31 +01:00
Dmitry Vyukov
f39aff9e4a dashboard/app: auto-close bugs after successful fix bisection
Add an optional feature for subj.
Should be useful for unmaintained namespaces like Linux LTS.
2019-11-07 16:08:26 +01:00
Dmitry Vyukov
d5bc68123a dashboard/app: enable mailing results of fix bisection
All prerequisites are done now.
I've cleaned the datastore and did some manual testing as well.

Fixes #1371
2019-11-07 14:45:13 +01:00
Dmitry Vyukov
461291eaaf dashboard/app: show what fix bisections we will mail
Show [report pending] for fix bisections that we will send.
Help to analyze what will happen when we enable mailing of fix bisections.

Update #1271
2019-11-07 14:27:46 +01:00
Dmitry Vyukov
9cf4d4ed2e dashboard/app: few more cosmetic UI changes
Don't add <br> before bisection, if bisection does not exist.
Rename fix bisections table to make it clearer that they failed.
2019-11-07 12:37:52 +01:00
Dmitry Vyukov
efb49b4d0b dashboard/app: slightly tidy up bisection results
Add new lines around bisection block as it was before.
Remove kernel tree, does not seem to be critical.
Make it clear what is cause bisection and what is fix bisection
(currently we have 2 "Bisection" which is not very helpful).
2019-11-07 11:07:08 +01:00
Dmitry Vyukov
30cb7f98cd pkg/bisect: detect wrong bisections
Detect bisection to merge commits and to commits that don't affect
kernel binary (comments, other arches, whitespaces, etc).
Such bisections are not reported in emails (but shown on web).

Update #1271
2019-11-07 11:07:03 +01:00
Zubin Mithra
0f3ec414b9 dashboard/app: add support for disabling fix bisection
* Allow fix bisection to be disabled on kernel repos to which force-pushes
occur.
* Pending fix bisection jobs for KernelRepo with FixBisectionDisabled will have
to be deleted manually.
* Add TestFixBisectionsDisabled.

Closes #1365
2019-11-05 09:17:27 +01:00
Zubin Mithra
a77e6539d9 syz-ci: send build info for failed bisections
* When fix bisections fails due to a crash on HEAD, the dashboard needs to
keep track of which commit the crash occured at. In order to do this,
send correct commit information to the dashboard.
* Modify mail_bisect_result.txt to be clearer on what
BisectResult.KernelCommit represents. Modify test in bisect_test.go to
accommodate the changes in templates.
2019-11-05 09:15:56 +01:00
Andrey Konovalov
76630fc947 executor, pkg/host, dashboard/config: rename usb-fuzzer to usb raw-gadget
The interface is being upstreamed and the name has changed.
2019-11-04 15:43:43 +01:00
Dmitry Vyukov
841212d4cc sys/linux: extend CAN descriptions 2019-11-02 21:31:45 +01:00
Dmitry Vyukov
018e59bad0 dashboard/app: add link to bug to reproducers
As requested by users.
Fixes #1396
2019-10-25 18:02:24 +02:00
Dmitry Vyukov
c2e837da36 dashboard/app: flexible rules for bug obsoleting
Implement logic described in #1054:
 - close bugs that happened a lot and then stopped faster
 - close bugs in non-final reporting with different period
 - allow closing bugs that happened only on 1 manager with different period

Fixes #1054
2019-10-25 15:56:00 +02:00
Dmitry Vyukov
2d4fab5ed1 dashboard/app: reduce auto-closing timeout to 120 days
See #1054

First simple step.
2019-10-25 13:28:42 +02:00
Dmitry Vyukov
ffff482138 dashboard/app: don't log user errors in checkCrashTextAccess too
This pollutes error logs too.
2019-10-25 13:28:42 +02:00
Dmitry Vyukov
e1b158574e datastore/app: switch more bug queries to paged queries
Update #1448
2019-10-25 13:28:42 +02:00
Dmitry Vyukov
44e9a18ae7 dashboard/app: switch foreachBug to using cursors
Cursors seem to be more efficient than Offset-based queries:
https://cloud.google.com/datastore/docs/concepts/queries#datastore-datastore-cursor-paging-go

Update #1448
2019-10-25 13:28:42 +02:00
Dmitry Vyukov
93b35d600e dashboard/app: use paged query to load bugs on the main page
The bugs query periodically times out. Try to use a paged query.

Update #1448
2019-10-25 13:28:42 +02:00
Dmitry Vyukov
3a0514fbbf dashboard/app: remove duplicate error log
The returned error is logged by caller.
2019-10-25 13:28:42 +02:00
Dmitry Vyukov
639a1e6606 dashboard/app: don't log errors that can be caused by bad user requests 2019-10-25 13:28:42 +02:00
Dmitry Vyukov
b602d64b59 dashboard/config: disable /dev/{mem,kmem,ioport} in syzbot bits
If syzkaller gets to /dev/{mem,kmem,ioport}, it will destroy the machine.
It managed to do so with some mount's, chdir's and bogus file names.
These are not needed for fuzzing, so completely disabling them is
the simplest and the most reliable option.
2019-10-23 15:57:13 +02:00
Andrey Konovalov
a970258ea5 dashboard/config: better extract usb configs
When generating a USB config, disable USB symbols that are disabled in the
base config, as they might have been enabled when some of the dependecies
got enabled.
2019-10-23 10:13:19 +02:00
Dmitry Vyukov
ef4a2149fe dashboard/config: update linux/kasan config
- update to latest linux-next
- disable /dev/{mem,kmem,ioport}
- enable lockdown (but it's not actually turned on)
- enable /dev/device_notify
- enable exfat
- enable virtio_fs
- enable few other things that look reachable in VMs

Fixes #1436
2019-10-15 13:50:06 +02:00
Andrey Konovalov
05ad729222 dashboard/config: update USB config 2019-10-14 14:14:06 +02:00
Dmitry Vyukov
64612bfd3c tools/syz-reprolist: add utility to extract list of reproducers 2019-10-08 12:39:23 +02:00
Dmitry Vyukov
3e1e84d48e dashboard/app: refactor few things related to fix bisections 2019-10-04 18:02:27 +02:00
zsm-oss
671dd8203a Merge pull request #1383 from zsm-oss/show-bisections
dashboard/app: show fix bisections on bug web UI
2019-10-04 17:51:16 +02:00
Andrey Konovalov
b7a87a83f8 dashboard, sys/linux: update USB configs 2019-10-01 14:00:17 +02:00
Zubin Mithra
f8368f999a dashboard/app: no reporting fix bisection results for already fixed bugs
* Modify pollCompletedJobs(); for bugs that are already marked as fixed,
invalid or duplicate do not report bisection results.
* Add TestNotReportingAlreadyFixed() to test that reporting does not
occur for already fixed bugs.
2019-09-24 10:48:29 +02:00
Marco Elver
c68252d224 dashboard/config: Add KCSAN config generator and config 2019-09-23 18:02:39 +02:00
Dmitry Vyukov
b4680d8341 dashboard/app: fix error wrapping
The current code does not do what it's supposed to do.
Converting error to error is always true.
Properly wrap errors.
2019-09-19 16:47:24 +02:00
Siddharth Muralee
1037b42440 dashboard/config: Add netbsd kernel configs 2019-09-18 15:00:55 +02:00
Andrey Konovalov
669cade06a dashboard/config: add debian stretch options
See #760 for details.
2019-09-17 14:42:25 +02:00