104 Commits

Author SHA1 Message Date
Dmitry Vyukov
29d7cb9a16 dashboard/app: show info about dups
Dups are currently completely invisible in the bug tables.
Account for them in NumCrashes, LastTime and ReproLevel.
2018-02-17 19:02:11 +01:00
Dmitry Vyukov
9e421cc9c5 dashboard/app: allow showing source coverage report 2018-02-17 19:02:11 +01:00
Dmitry Vyukov
223b2499f7 dashboard/app: allow sorting bug tables
Fixes #523
2018-02-17 19:02:11 +01:00
Dmitry Vyukov
17061fc0f9 dashboard/app: finer-grained access control
This is the bulk of work for opening dashboard.
Implement finer-grained access control (admin/user/public).
Show only info designated to the current user access level.
Rework UIs for more clarity re bug statuses.
Show fixed bug.
2018-02-14 18:24:57 +01:00
Dmitry Vyukov
bb826eb26c dashboard/app: fix job creation
1. Create/update job in a transaction.
Fixes #518

2. Add requesting user to CC even if job creation fails.
Fixes #511
2018-02-07 16:15:11 +01:00
Dmitry Vyukov
67bd338380 dashboard/app: show jobs/managers/logs only for admin
That's not very interesting for anybody other than admins.
2018-02-01 16:57:38 +01:00
Dmitry Vyukov
eeefb53ba9 dashboard/app: tidy up UIs
Show short kernel repo/branch aliases,
also slightly reshuffle and tidy up tables.
2018-02-01 16:20:13 +01:00
Dmitry Vyukov
9b1e75c0bc dashboard/app: fix patched/missing on numbers
We currently print N/M which does not mean N out of M are patched,
instead it means N patched and M are not patched.
This is confusing. Print more traditional "N out of M".
2018-02-01 15:40:32 +01:00
Dmitry Vyukov
a84dec47f0 dashboard/app: properly handle job request dups
Dups always have the same Message-ID,
and that's more reliable than looking at From/Sender.
So use Message-ID for deduplication.
2018-01-31 16:15:02 +01:00
Dmitry Vyukov
2666e00902 dashboard/app: restructure email text
Reproducers are more important. .config is less important.
Reorder lines in that order.
As suggested by Theodore Ts'o in
https://groups.google.com/d/msg/syzkaller/5hjgr2v_oww/fn5QW6dvDQAJ
2018-01-18 10:01:26 +01:00
Dmitry Vyukov
0d1e95d2ba dashboard/app: rearrange attachment order
Some email clients show attachments inline.
Config is large, make it the last attachment.
As suggested by Theodore Ts'o in
https://groups.google.com/d/msg/syzkaller/5hjgr2v_oww/fn5QW6dvDQAJ
2018-01-18 10:01:26 +01:00
Dmitry Vyukov
b134896b20 dashboard/app: embed comment about syzkaller repros into the repro
Reduces clutter in email text.
As suggested by Theodore Ts'o in
https://groups.google.com/d/msg/syzkaller/5hjgr2v_oww/fn5QW6dvDQAJ
2018-01-18 10:01:26 +01:00
Dmitry Vyukov
add1f438ac dashboard/app: fix commit time formatting
Current code mishandles the case when we don't know time at all.
2018-01-18 08:47:34 +01:00
Dmitry Vyukov
56cc113a8e dashboard/app: improve report format
- show kernel repo alias
- show commit title/date
- say how many times the crash happened/where
- some minor tweaks

Fixes #468
2018-01-17 21:50:57 +01:00
Dmitry Vyukov
d7bc58204e dashboard/app: collect more info for better reports
Collect kernel build commit title/date.
Add support for kernel repo aliases (to be able
to say linux-next instead of full git repo address).
Collect on what managers a bug happened.
Reuse Crash.ReportLen as generic crash reporting priority.
Make it possible to prioritize reporting of particular
kernel repos and arches.

Fixes #473
2018-01-17 19:52:30 +01:00
Dmitry Vyukov
02a2ba2966 dashboard/app: add job user blacklist 2018-01-17 19:52:30 +01:00
Dmitry Vyukov
2129f66e2d dashboard/app: use Reported-by tags to fix bugs
Accept and use Reported-by tags in commits to mark bugs as fixed.
2018-01-17 19:52:30 +01:00
Dmitry Vyukov
c43cd72b20 dashboard/app: extend some log messages 2018-01-16 17:01:10 +01:00
Dmitry Vyukov
4b85c5807b dashboard/app: setup periodic backups 2018-01-16 17:00:09 +01:00
Dmitry Vyukov
c66e766d03 dashboard/app: remember what crashes we reported for what bugs
We currently can silently switch crashes when report
to the next reporting, or test a patch using a repro
from a different crash.
Remember what crash we reported for a bug and use it
in both cases.
2018-01-16 14:56:29 +01:00
Dmitry Vyukov
afcb994770 dashboard/app: rename attachments so they are sent as text/plain
Appengine sends only .txt/.diff files as text/plain.
Unknown extensions are send as application/octet-stream,
which is unacceptable.
I've opened a bug on appengine, but for now just rename them.
2018-01-16 13:37:14 +01:00
Dmitry Vyukov
46d78f4deb dashboard/app: don't warn about emails on closed bugs 2018-01-15 15:26:30 +01:00
Dmitry Vyukov
11dc42f69d dashboard/app: fix reporting filter skipping
We must not skip reporting if we already reported a bug to it.
This leaves orphaned bugs.
2018-01-08 13:39:47 +01:00
Dmitry Vyukov
19c05fffcb dashboard/app: receive and log email bounces 2018-01-06 18:35:36 +01:00
Dmitry Vyukov
07703435fa dashboard/app: limit error log line length 2018-01-06 18:34:38 +01:00
Dmitry Vyukov
30dc9443eb dashboard/app: don't warn about emails with no command for closed bugs
Somebody discusses something, we don't care anymore.
2017-12-28 16:09:49 +01:00
Dmitry Vyukov
b54ffc7456 dashboard/app: ignore our own tags in emails
When somebody sends us our own email back without quoting,
we used to extract "#syz fix: exact-commit-title" from it.
Ignore such emails.
2017-12-28 16:01:59 +01:00
Dmitry Vyukov
2675701746 dashboard/app: make reporting filtering more flexible
Reporting statuses are not flexible as they can't encode
all possible conditions. ReportingPassThrough is a good example.
Replace Status with Filter which accepts bug and can contain
arbitrary logic.
2017-12-28 10:43:17 +01:00
Dmitry Vyukov
f9e22d6230 pkg/email: don't add <> to email when name is empty
Just unnecessary clutter.
2017-12-28 08:51:39 +01:00
Dmitry Vyukov
a113b8e4d7 dashboard/app: handle no bug ID in emails better
We see these warnings when people CC syzbot on unrelated threads.
If there is no command in the email, don't produce warning at all.
On the other hand if there is a command, warn and send sender
reply that syzbot can't find the corresponding bug.
2017-12-27 13:14:53 +01:00
Dmitry Vyukov
6f03c35620 dashboard/app: extract fixing tags from commits
Support the new scheme of associating fixing commits with bugs.
Now we provide a tag along the lines of:

Reported-by: <syzbot+a4a91f6fc35e102@syzkaller.appspotmail.com>

The tag is supposed to be added to the commit.
Then we parse commit logs and extract these tags.

The final part on the dashboard is not ready yet,
but syz-ci should already parse and send the tags.
2017-12-27 09:09:18 +01:00
Dmitry Vyukov
73aba437a7 dashboard/app: bump max repros per bug to 10
We badly need repros. Developers complain.
2017-12-22 19:59:56 +01:00
Dmitry Vyukov
2d836b1d35 dashboard/app: add default maintainers to email config
Crashes without maintainers are nasty. There is no way to do
anything with them without altering the datastore (they are not mailed).

Add DefaultMaintainers to email config.
These addresses are added to all reported bugs as maintainers (e.g. LKML).
One the report is mailed it's possible to CC more people on it.
2017-12-19 15:03:33 +01:00
Dmitry Vyukov
f2909d097e dashboard/app: add API for polling for closed bugs
External reporting may need to know when dashboard
is not interested in bugs anymore.
Add API that returns list of bugs dashboard considers closed.
2017-12-19 11:05:42 +01:00
Dmitry Vyukov
9d46048cb9 dashboard/app: allow fragment links to namespaces
Now "#foo" link will point to namespace "foo".
2017-12-12 14:55:43 +01:00
Dmitry Vyukov
5ad0ce9589 dashboard/app: fix test
Fix test after the previous commit.
2017-12-08 19:06:08 +01:00
Dmitry Vyukov
2f6fb92368 dashboard/app: improve working in bug email
As per discussion in:
https://groups.google.com/d/msg/syzkaller-bugs/atbKWcFqE9s/w88o2OvsAwAJ
2017-12-08 18:46:20 +01:00
Dmitry Vyukov
08c5c8bfdd dashboard/app: fix manager failed build reset
Only reset manager failed build if it uploaded _new_
successful build. On manager restart it uploads its
_old_ working build, and it should not reset a later
failed build.
2017-12-07 10:28:40 +01:00
Dmitry Vyukov
5d643f8e70 dashboard/app: fix typo in template 2017-12-06 13:12:38 +01:00
Dmitry Vyukov
a65439d5fd dashboard/app: add "pass through" reporting status
ReportingPassThrough is mostly the same as ReportingDisabled,
but dalays "special" bugs (no report, corrupted report, build error, etc).
2017-12-06 13:12:38 +01:00
Dmitry Vyukov
b1d1979cc6 dashboard/app: improve error message
For some reason people sometimes drop syzbot from CC.
Then we receive the message from mailing list and can't
find the corresponding bug.
Log email subject in such cases so that it's easier to find
the corresponding email thread.
2017-12-06 13:12:38 +01:00
Dmitry Vyukov
e8062ae15f dashboard/app: show more crashes on bug page
We have maxCrashes crashes without reproducers + arbitrary number
of crashes with reproducers. Crashes with reproducers can be stale.
Show more crashes.
2017-12-05 20:08:06 +01:00
Dmitry Vyukov
de212f1a05 dashboard/app: show manager addresses 2017-12-04 12:13:10 +01:00
Dmitry Vyukov
09582d5306 syz-manager: send public web addr to dashboard 2017-12-04 11:58:55 +01:00
Dmitry Vyukov
f5e771b200 dashboard/app: add drop namespace functionality
dropNamespace drops all entities related to a single namespace.
Use with care. There is no undo.
This functionality is intentionally not connected to any handler.
To use it, first make a backup of the datastore. Then, specify the target
namespace in the ns variable, connect the function to a handler, invoke it
and double check the output. Finally, set dryRun to false and invoke again.
2017-12-04 09:00:36 +01:00
Dmitry Vyukov
96ca35f4c7 dashboard/app: show info about duplicates and similar bugs
Show info about duplicates and similar bugs in other kernels
on the bug page.
2017-12-04 09:00:28 +01:00
Dmitry Vyukov
48359b9777 dashboard/app: improve needRepro
Don't reproduce corrupted reports.
Don't reproduce if canonical bug already has repro.
2017-12-01 17:27:08 +01:00
Dmitry Vyukov
948edf8055 dashboard/app: cosmetic changes to manager stats 2017-12-01 17:13:23 +01:00
Dmitry Vyukov
a6f9669d26 dashboard/app: fix misspelled field in template
Also change code to catch such bugs in tests in future.
The problem was that template.Execute already wrote something
into w before returning error, so though the function
returned an error we served 200 instead of 500.
2017-12-01 14:20:03 +01:00
Dmitry Vyukov
2fa91450df dashboard/app: add manager monitoring
Make it possible to monitor health and operation
of all managers from dashboard.
1. Notify dashboard about internal syz-ci errors
   (currently we don't know when/if they happen).
2. Send statistics from managers to dashboard.
2017-12-01 13:58:11 +01:00