| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
Any is the preferred over interface{} now in Go.
|
| |
|
|
|
|
| |
Don't specify the subsystem revision in the dashboard config and instead
let it be nested in the registered subsystems. This reduces the amount
of the manual work needed to switch syzbot to a newer subsystem list.
|
| | |
|
| | |
|
| |
|
|
|
| |
Now that we mock the config as a whole and not parts of it, these
functions have boiled down to 1-liners. We don't need them anymore.
|
| |
|
|
|
| |
In many cases we want to just access the namespaces's config.
Introduce a special helper function to keep code shorter and more conscise.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We used to have a single global `config` variable and access it
throughout the whole dashboard application.
However, this approach has been more and more complicated test writing
-- sometimes we want the config to be only slightly different, so that
it's not worth it adding new namespaces, sometimes we have to test how
dashboard handles config changes over time.
This has already led to a number of hacky contextWithXXX methods that
mocked various parts of the global variable. The rest of the code had to
sometimes still use `config` directly and sometimes invoke getXXX(c)
methods. This is very inconsistent and prone to errors.
With more and more situations where we need to patch the config
appearing (see #4118), let's refactor the application to always access
config via the getConfig(c) method. This allows us to uniformly patch
the config and be sure that the non-patched copy is not accessible from
anywhere else.
|
| |
|
|
|
|
|
|
|
| |
Although we currently do not highlight the number of per-subsystem
invalid and dup bugs, we still lack consistency in the Bug table, which
complicates statistics collection for us.
Let's recalculate subsystems for invalidated and duped bugs as well. Do
it after everything else is updated.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Let bug labels come in three flavours:
1) Bug labels with multiple values (e.g. `subsystems`).
2) Bug labels with only one value (e.g. `prio`).
3) Flags.
Let users configure bug labels via email by issuing the following
commands:
#syz set subsystems: abc, def
#syz set no-reminders
#syz unset no-reminders
Also let users set tags for invididual bugs in reported bug lists:
#syz set <1> some-tag
|
| |
|
|
|
| |
We need to log the subsystem change before it's updated. After update
there won't be any difference.
|
| |
|
|
| |
It will help evaluate the results of bug inference logic updates.
|
| |
|
|
|
|
|
|
|
| |
We're not yet perfect at eliminating unneeded calls from reproducers, so
let's make the subsystem extraction rules stricter: only take a
subsystem from the reproducer if it's present in all reproducers.
Consider more crashes (7 instead of 5) to give more opportunities to
drop an unneeded call.
|
| |
|
|
|
|
|
|
| |
It might happen that the user-set subsystem no longer exists. It seems
not worth it to implement any automatic processing for that case. Let's
postpone it until it turns out to be really necessary.
For now let's just log an error.
|
| |
|
|
| |
Add tests to ensure this behavior.
|
| |
|
|
| |
Support the #syz set subsystems: A, B, C command.
|
| |
|
|
|
| |
This might happen if the user forgot to import pkg/subsystem/lists. Make
the problem more visible by panicking in ServiceList().
|
| |
|
|
|
|
|
|
|
| |
This will both help set subsystems for bugs that existed before these
changes and keep subsystems up to date with changes to the subsystem
list.
Do the update once a month for open bugs and also update all open and
fixed bugs every time a revision changes.
|
|
|
After each saved crash, invoke the new pkg/subsystem machinery to infer
the subsystem list. Use 5 crashes with biggest priority to base the
inference on.
|