168 Commits

Author SHA1 Message Date
Dmitry Vyukov
23454ce6df dashboard/app: make build upload more robust
Currently it triggers datastore timeouts episodically.
Don't fail build upload if bug commit update fails.
Split the large query into two smaller queries.
2018-10-10 14:03:14 +02:00
Dmitry Vyukov
7eaec1b83e dashboard/app: fetch bugs in batches
We are seeing lots of datastore timeout errors during bug fetch.
It's a bad idea to fetch thousands of bugs in one query,
so fetch them in batches of 1000 bugs.
Hopefully will reduce rate of errors.
2018-10-10 13:40:22 +02:00
Dmitry Vyukov
7ffd14ab85 dashboard/app: add similarity domains for namespaces
It does not make sense to show similar bugs across linux/openbsd/akaros.
Allow restricting similarity domains for namespaces.

Fixes #742
2018-09-24 11:12:44 +02:00
Dmitry Vyukov
3c8de4d941 dashboard/app: show coverage report per-manager
Now that syz-ci can upload coverage reports to GCS,
we can show up-to-date coverage for each manager
rather than a single static outdated file per namespace.
2018-09-20 19:32:54 +02:00
Dmitry Vyukov
4fb3cca18f dashboard/app: tidy up UI
Don't show maintainers for crashes if we don't have them (only linux has).
Show short git hashes for kernel/syzkaller, 40 chars looks excessive (full hash is in hint).
Show current build kernel/syzkaller git hash in managers table.
Remove fuzzing time from managers table (does not seem too useful).
2018-09-20 18:29:38 +02:00
Dmitry Vyukov
0e88373b1c dashboard/app: change backup bucket
Backup datastore into a separate bucket as it creates lots of garbage.
2018-09-20 18:29:38 +02:00
Dmitry Vyukov
a171414b74 dashboard/app: allow some cross-reporting dups
Allow a special case of cross-reporting duping:
rom last but one reporting to the last one (which is stable, final destination)
provided that these two reportings have the same access level and type.
The rest of the combinations can lead to surprising states and
information hiding, so we still don't allow them.

Fixes #569
2018-09-11 11:39:41 +02:00
Dmitry Vyukov
3f4ebb87dc dashboard/app: show managers according to access level
It is useful to show some info about managers,
in particular failed builds.
2018-09-08 13:58:05 +02:00
Dmitry Vyukov
0b937a7eef dashboard/app: allow renaming/bucketing bugs
Add config hooks that can be used to rename/bucket bugs.

Fixes #677
2018-09-05 15:08:41 +02:00
Dmitry Vyukov
ffd18c6443 dashboard/app: split repo and branch by space
We currently split them with / which makes it hard
to copy paste and generally understand that these
are 2 separate things.
Split them with a space. User request:
https://groups.google.com/forum/#!msg/syzkaller-bugs/yNFv3qgXY3I/ejPrxLCdBAAJ
2018-09-03 16:22:41 +02:00
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
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
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
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
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
Dmitry Vyukov
96f3f2ea79 dashboard/app: fix anchors for namespaces
The human readable caption is a bad value for anchor,
also potentially changing over time.
Restore the namespace name as anchor as it should be.
2018-04-11 19:22:06 +02:00
Dmitry Vyukov
44e67268d0 dashboard/app: add Reported-by to bug page
Fixes #549
2018-04-10 16:49:06 +02:00
Dmitry Vyukov
c58e46ddd1 dashboard/app: allow deplaying intial bug reporting
This is useful to collect reproducers and more info
about trees where the bug happens before it is first reported.
2018-04-05 11:57:18 +02:00