aboutsummaryrefslogtreecommitdiffstats
path: root/dashboard/app/subsystem.go
Commit message (Collapse)AuthorAgeFilesLines
* all: use any instead of interface{}Dmitry Vyukov2025-12-221-1/+1
| | | | Any is the preferred over interface{} now in Go.
* all: simplify subsystem revision updatesAleksandr Nogikh2025-07-231-6/+2
| | | | | | 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.
* all: fix up context import after go fixDmitry Vyukov2024-04-261-1/+1
|
* all: go fix everythingDmitry Vyukov2024-04-261-1/+1
|
* dashboard: remove too granular config helpersAleksandr Nogikh2023-10-121-4/+4
| | | | | 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.
* dashboard: introduce a getNsConfig() helperAleksandr Nogikh2023-10-121-2/+2
| | | | | In many cases we want to just access the namespaces's config. Introduce a special helper function to keep code shorter and more conscise.
* dashboard: access config through contextAleksandr Nogikh2023-10-121-26/+3
| | | | | | | | | | | | | | | | | | | | | 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.
* dashboard: update subsystems for all bugsAleksandr Nogikh2023-08-291-1/+5
| | | | | | | | | 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.
* all: use special placeholder for errorsTaras Madan2023-07-241-1/+1
|
* dashboard: let admins trace subsystem assignmentAleksandr Nogikh2023-04-281-3/+5
|
* dashboard: support bug labelsAleksandr Nogikh2023-04-271-19/+15
| | | | | | | | | | | | | | | | 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
* dashboard: fix subsystem change loggingAleksandr Nogikh2023-04-041-1/+1
| | | | | We need to log the subsystem change before it's updated. After update there won't be any difference.
* dashboard: log subsystem changesAleksandr Nogikh2023-04-041-0/+19
| | | | It will help evaluate the results of bug inference logic updates.
* pkg/subsystem: take only always present calls from reprosAleksandr Nogikh2023-03-281-1/+1
| | | | | | | | | 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.
* dashboard: report errors for outdated subsystem assignmentsAleksandr Nogikh2023-02-241-0/+11
| | | | | | | | 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.
* dashboard: don't reset user-set subsystemsAleksandr Nogikh2023-02-241-4/+15
| | | | Add tests to ensure this behavior.
* dashboard: support manual bug subsystem assignmentAleksandr Nogikh2023-02-241-14/+30
| | | | Support the #syz set subsystems: A, B, C command.
* pkg/subsystem: panic on empty service creationAleksandr Nogikh2023-02-171-1/+5
| | | | | This might happen if the user forgot to import pkg/subsystem/lists. Make the problem more visible by panicking in ServiceList().
* dashboard: periodically refresh bug subsystemsAleksandr Nogikh2023-02-161-0/+102
| | | | | | | | | 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.
* dashboard/app: infer bug subsystems from crashesAleksandr Nogikh2023-02-161-0/+64
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.