Commit Graph

37 Commits

Author SHA1 Message Date
Dmitry Vyukov
b1b6c0ed6d dashboard/app: use DailyLimit=0 to mark disabled reportings
We currently use ConstFilter(FilterHold) to mark disabled reportings.
But this condition is impossible to check (even if we make it a named
function, functions are not comparable).
Use DailyLimit=0 as a way to say the same. Note: previously it was used to say "no limit".
This is needed for the next change that needs to understand the active last reporting.
2020-06-23 16:42:46 +02:00
Dmitry Vyukov
588020678f all: use more respective language
Some terms are normalised on the technical level
but may be oppressive on a societal level.
Replace them with more technically neutral terms.
See the following doc for a longer version:
https://tools.ietf.org/id/draft-knodel-terminology-00.html
2020-06-11 23:19:34 +02:00
Dmitry Vyukov
88cb3e92ba dashboard/app: add notion of per-repo build maintainers
For context see:
https://groups.google.com/d/msg/syzkaller/9HxkC_hRP4M/MzFl4laADgAJ

Now if, say, linux-next, is build/boot-broken we can CC maintainers of the tree.

Fixes #1667
2020-05-09 15:40:30 +02:00
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
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
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
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
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
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
db842eb61c dashboard/app: add ConstFilter helper
Handy to use in configs if lots of filter just need to return a const.
2019-07-16 14:18:35 +02:00
Dmitry Vyukov
31e097a19f dashboard/app: stricter check on namespace names
Check that namespaces don't contain bad chars.
2019-04-10 15:07:22 +02:00
Dmitry Vyukov
3ef496b7ba dashboard/app: split dashboard per-namespace
We now have too many namespaces and bugs.
Main page takes infinity to load.
Also almost nobody is interested in more than 1 namespace.
So split main page per-namespaces.
2019-04-08 14:32:32 +02:00
Dmitry Vyukov
6a5fcca423 dashboard/app: implement bug notifications/actions
Currently dashboard can only report new bugs and add reproducers
to already reported bugs.
This change adds infrastructure for the dashboard to actively act
on existing bugs in different ways. 4 new notifications (actions) added:
 - dashboard can auto-upstream bugs from moderation after an embargo period
 - dashboard can auto-upstream bugs if reporting criteria changes
   (e.g. it reported a bug into moderation because there was no repro,
   but then repro appears and the bug is automatically sent upstream)
 - dashboard detects when a fixing commit does not appear in any tested trees
   for too long and sends a notification about this
 - dashboard detects stale bugs (last happened monts ago, no repro, no activity)
   and auto-invalidates them
This will also be useful to send pings for old bugs and do other automation.
2019-02-22 11:42:54 +01:00
Dmitry Vyukov
4df543c9ab dashboard/app: remove ReportingType.NeedMaintainers
Instead require DefaultMaintainers if MailMaintainers is set.
This makes logic in needReport a bit simpler.
2019-02-19 15:23:49 +01:00
Dmitry Vyukov
6a4471c2e5 dashboard/app: fix unused variable warning
isAppEngineTest is meant to be used in prod configs.
2019-02-17 15:44:21 +01:00
Dmitry Vyukov
3e98cc3080 dashboard/app: poll commits info
This implements 2 features:
 - syz-ci polls a set of additional repos to discover fixing commits sooner
   (e.g. it can now discover a fixing commit in netfilter tree before
   it reaches any of the tested trees).
 - syz-ci uploads info about commits to dashboard.
   For example, a user marks a bug as fixed by commit "foo: bar".
   syz-ci will find this commit in the main namespace repo
   and upload commmit hash/date/author to dashboard. This in turn
   allows to show links to fixing commits.

Fixes #691
Fixes #610
2019-02-17 15:08:45 +01:00
Dmitry Vyukov
71b3a323eb dashboard/app: CC kernel tree specific mailing list on reports
Add ability to CC particular emails for crashes on particular kernel trees.

Fixes #828
2018-12-18 09:59:07 +01: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
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
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
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
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
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
Dmitry Vyukov
81c512e6b1 dashboard/app: add support for Google Analytics 2018-03-21 13:46:45 +01:00
Dmitry Vyukov
9e421cc9c5 dashboard/app: allow showing source coverage report 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
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
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
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
bf82068946 dashboard/app: assorted improvements/fixes for patch testing
Fix a bunch of bugs after testing.
Also update docs for patch testing.
2017-11-17 21:04:40 +01:00
Dmitry Vyukov
172189e955 dashboard/app: heavylifting of email reporting
- save Message-ID and use In-Reply-To in subsequent messages
- remember additional CC entries added manually
- don't mail to maintainers if maintainers list is empty
- improve mail formatting and add a footer
- implement upstream/fix/dup/invalid commands over email
- add tests
2017-08-17 19:42:11 +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