aboutsummaryrefslogtreecommitdiffstats
path: root/dashboard/app/reporting_test.go
Commit message (Collapse)AuthorAgeFilesLines
* dashboard: fix manuallyUpstreamedAleksandr Nogikh2026-01-151-0/+12
| | | | | The function returned incorrect result when the reporting stage of interest was completely skipped and never reported.
* dashboard/app: slightly improve coverage report wordingDmitry Vyukov2026-01-151-2/+2
| | | | | Use the proper namespace name to show. +few minor tweaks
* dashboard: add a manuallyUpstreamed helperAleksandr Nogikh2026-01-151-0/+50
| | | | | | | | | | This helper function can be used in the reporting filtering rules to skip certain reporting stages depending on whether the previous stage(s) have been manually upstreamed. Add tests that it does have the intended effect. Cc #6554.
* dashboard/app: change regressions email titleTaras Madan2025-09-261-1/+1
| | | | Closes #6380.
* dashboard/app: email regressions in files onlyTaras Madan2025-05-191-1/+0
| | | | The lines about folders don't look actionable.
* dashboard/app: allow to set spanner context only from testsTaras Madan2025-05-051-1/+1
| | | | getSpannerClient returns prod client as a default.
* dashboard/app: fix bugs in handleCoverageReportsTaras Madan2025-05-021-1/+1
| | | | | 1. Set coverage db. 2. Use appUrl instead of r[.URL].Host.
* dashboard/app: send coverage report to ns-defined emailTaras Madan2025-04-301-0/+53
| | | | We periodically send coverage reports for the regressions detection.
* dashboard: include revoked reproducers in reportsAleksandr Nogikh2025-03-081-0/+66
| | | | | | | | | | | | | Context: #5829. Let's not pretend that the revoked reproducer never existed and still report it. It will avoid unexpected side-effects for the higher-level logic. There may be better ways to resolve the bug, but let's first just get it fixed to prevent syzbot from spamming the mailing lists. Add a test to verify the new behavior.
* all: remove loop variables scopingTaras Madan2025-02-171-1/+0
|
* all: fix up context import after go fixDmitry Vyukov2024-04-261-1/+1
|
* all: go fix everythingDmitry Vyukov2024-04-261-1/+1
|
* tools/syz-linter: check t.Logf/Errorf/Fatalf messagesDmitry Vyukov2024-04-171-2/+2
| | | | | Fix checking of Logf, it has string in 0-th arg. Add checking of t.Errorf/Fatalf.
* dashboard: wait for repro only when it makes senseAleksandr Nogikh2024-01-181-0/+36
| | | | | In case or build/boot/test errors there will never be a reproducer. It's better to report them right away, without waiting.
* dashboard: include repro messages into daily limitsAleksandr Nogikh2024-01-091-2/+48
| | | | | A recent failure (#4412) could have been more constrained if our reproducer emails were included in our daily limits. Let's change that.
* dashboard: prevent infinite reporting of revoked reprosAleksandr Nogikh2024-01-091-0/+44
| | | | | | | | | | Fix a bug in the reporting of bugs with revoked reproducers. Add a test that reproduces the problematic situation. Also, ensure that we don't include the revoked reproducer into the report we send to the next reporting stage. Cc #4412.
* dashboard: access config through contextAleksandr Nogikh2023-10-121-4/+7
| | | | | | | | | | | | | | | | | | | | | 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/app: calculate obsoletion periods differentlyAleksandr Nogikh2023-08-221-0/+66
| | | | | | | Rely on the Poisson distribution to determine the moment when we should give on a bug. We don't have to wait 100x the average time between the crashes.
* dashboard: fix the Config.Decommissioned raceAleksandr Nogikh2023-07-181-2/+1
| | | | | | | | | | Race detector reports a race between dashboard/app/reporting_test.go:1102 and dashboard/app/handler.go:183 Fix this by storing decommission updates in the context rather than by directly modifying the global config variable.
* dashboard: always return full UserSpaceArchAleksandr Nogikh2023-07-131-0/+2
| | | | | | Currently we return an empty value for amd64, so that it's not reported. Let's make the API more flexible -- return the value as is and let specific reporters decide whether to mention amd64 or not.
* dashboard: include Manager into BugReportAleksandr Nogikh2023-07-071-0/+2
| | | | | De-facto BugReport anyway refers to a specified crash and not just to the bug in general. Let's also include the Manager field there.
* dashboard: prefer bug?exit= links over bug?id=Aleksandr Nogikh2023-05-121-1/+1
| | | | The former one is consistent with the dashboard URL from our bug reports.
* dashboard: share repro level and report link in SimilarBugInfoAleksandr Nogikh2023-03-281-4/+25
| | | | This will make FullBugInfo's contents much more useful.
* dashboard: include subsystem links in BugReportAleksandr Nogikh2023-02-211-2/+9
| | | | Include the link to the subsystem page on the dashboard.
* dashboard: fix racy decommission testsAleksandr Nogikh2023-01-271-5/+6
| | | | | | | | These tests require a change in the global configuration during the test execution, so they at least need their own namespaces in order not to interfere with other tests. Fixes #3641
* dashboard: introduce the update_report API callAleksandr Nogikh2023-01-261-0/+43
| | | | | The update_report API can be used to re-fill the missing report details after a crash has already been sent to syzbot.
* dashboard: include report elements in the BugReportAleksandr Nogikh2023-01-261-0/+2
| | | | | This will help optimize the detection and addition of missing fields to the existing reports.
* dashboard: adjust pollClosed behavior for decommissioned namespacesAleksandr Nogikh2022-12-191-0/+23
| | | | | Return bugs from decommissioned namespaces as closed to external reportings.
* dashboard: return bisection info as BugReport objectAleksandr Nogikh2022-12-131-2/+25
| | | | | Bisection jobs can refer to other crashes/builds, so for the full bug info we need complete BugReport objects.
* dashboard: add full bug info request APIAleksandr Nogikh2022-12-091-0/+70
| | | | | | | Introduce the /load_full_bug call that, for a given bug ID, returns 1) Bisection results 2) Similar crashes in other namespaces 3) A subset of most noteworthy crashes.
* dashboard: implement asset storageAleksandr Nogikh2022-08-241-0/+2
| | | | | | | | | | | | | | | Asset is a file/attachment relevant for debugging a kernel crash or the syzbot itself. Dashboard keeps track of the uploaded assets and manages their lifetime. Some of the assets are attached to the bug reports sent by syzkaller, some (like html coverage report) are displayed on the web portal. Two new API requests: * add_build_assets -- let dashboard remember one more build-related asset. * needed_assets -- query the list of assets that are still needed by the dashboard.
* dashboard: improve BugReporting update processAleksandr Nogikh2022-05-301-0/+145
| | | | | | | | Until #3161 is implemented, we still need to manually update the DB each time we create/delete Reporting objects. The existing code can only append missing items. Make it also support deleting and inserting them at arbitrary locations.
* dashboard: remember and display strace flagAleksandr Nogikh2022-04-291-0/+2
| | | | | | | Receive the information, whether the crash log contains strace output, from the syz-manager. Adjust bug reporting email depending on that flag.
* dashboard/app: check the reporting detach logic (#2883)Taras Madan2021-11-221-0/+42
| | | Lets extend the test suite to cover the external bugtracker detach logic.
* dashboard/app: fix url escaping in a testDmitry Vyukov2021-10-131-2/+3
| | | | | | | | | | Not sure how it worked all this time, but the test started failing for me after docker images update. The problem is that the extracted from html page URL looks like this: /text?tag=MachineInfo&x=7f696f35fe6755e7 we then use this URL to request the machine info page, but the "&" part is problematic is not really valid. Unescape extracted from html URL.
* dashboard/app: merge duplicate crashesDmitry Vyukov2021-01-171-0/+197
| | | | Update #1575
* sys/targets: add OS/Arch name constsDmitry Vyukov2020-10-261-6/+7
| | | | | | | | | | | | We use strings to identify OS/Arch. These strings are duplicated throughout the code base massively. golangci-lint points to possiblity of typos and duplication. We already had to define these names in pkg/csource and disable checking for prog package. A future change triggers such warnings in another package. Add OS/Arch name consts to sys/targets so that they can be used to refer to OS/Arch. Use the consts everywhere.
* dashboard/app: add more info to BugReportDmitry Vyukov2020-09-301-0/+14
| | | | | | | | | | | | | Add the following fields to BugReport: - bug status - build id - build time - syzkaller commit - crash time - repro opts Will be required to export info to KCIDB. Update #2144
* dashboard/app: fix up machine info handlingDmitry Vyukov2020-09-141-1/+4
| | | | | | | | | Assorted local fixes fixes, like dedup machine info in the database, fix up HTML table markup, enforce and check access to the machine info entities, etc. Follow up to #2085 Fixes #466
* dashboard/app: send machine information to dashboardCheng-Min Chiang2020-09-141-0/+45
| | | | | | | | | | | | - Change syz-manager so that it will send machine info the first time a crash occurs. - Add a field in entities.Crash to store machine info. - Add a field in dashapi.BugReport to store machine info. - Change the HTML template and struct uiCrash to display machine info. - Add a test to make sure that the link to machine info appears on the webpage. Update #466
* dashboard/app: prohibit dup cyclesDmitry Vyukov2020-06-231-0/+37
| | | | | | | | | | | Bug dup cycles are not useful and the rest of the code is not prepared for them. Prohibit updates that create cycles. This required to restructure the code to move the check into the transaction, so that we can't get cycles even after concurrent updates. Fixes #1852
* dashboard/app: fix testing for go1.11 runtimeDmitry Vyukov2020-01-291-2/+0
| | | | | | | | | | 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
* dashboard: update to go111 runtimeAndrew Donnellan2020-01-291-1/+1
| | | | | | | | | 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>
* dashboard/app: report newer crashes in the next reportingDmitry Vyukov2019-12-111-2/+6
| | | | | | | | | | | | | We used to report the newest crash long time ago. Then we switched to preserving the crash across reporting stages b/c what reaches next stage may be not what was sent upstream in the previous one. However, it seems to cause more problems now than it solves. Crash classification become much better + some backlog of bugs was clearer, so we don't have that may glued bugs. However, in some cases we report notoriously old crashes which is bad. Switch to the newest crash agian. Let's see how this works now.
* dashboard/app: make dashapi.BugReport more self-containedDmitry Vyukov2019-03-171-0/+17
| | | | | | | Extend BugReport with few fields that are needed by all reportings anyway. This allows to not create and fill an almost identical object to pass to template. Update #501
* dashboard/app: modernize testsDmitry Vyukov2019-03-171-25/+9
| | | | | | Use expectOK for checking errors more. Use pollEmailBug helper more. Add expectNE and use it.
* dashboard/app: implement bug notifications/actionsDmitry Vyukov2019-02-221-2/+5
| | | | | | | | | | | | | | | | 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.
* dashboard/app: allow some cross-reporting dupsDmitry Vyukov2018-09-111-1/+9
| | | | | | | | | | 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
* dashboard/app: split repo and branch by spaceDmitry Vyukov2018-09-031-8/+17
| | | | | | | | 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
* dashboard/app: refactor testsDmitry Vyukov2018-06-111-259/+99
| | | | | | | Use standard dashboard client provided by dashapi package in tests. Switch everything to use the client instead of API method. Fixes #606