aboutsummaryrefslogtreecommitdiffstats
path: root/dashboard/app/bisect_test.go
Commit message (Collapse)AuthorAgeFilesLines
* dashboard/app: use makeUser insteadTaras Madan2024-10-211-1/+1
|
* dashboard: do not mention bug in the email templateAleksandr Nogikh2023-10-311-9/+9
| | | | Not all reports are real bugs, so let's use softer wording.
* dashboard: access config through contextAleksandr Nogikh2023-10-121-4/+4
| | | | | | | | | | | | | | | | | | | | | 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: differentiate job invalidation and job restartAleksandr Nogikh2023-08-241-7/+17
| | | | | | | In some cases restarting the failed bisection does not make sense, because we know that the result will be the same. Let admins choose between invalidating the job and restarting it.
* dashboard: emphasise that #syz set overwrites subsystemsAleksandr Nogikh2023-08-161-3/+3
| | | | | Update the bug cheatsheet to emphasise that "#syz set subsystems" does not add new subsystems, but rather overwrites the whole list.
* dashboard: don't close bugs on cross-tree fix findingsAleksandr Nogikh2023-08-041-0/+7
| | | | | Accept only normal fix bisections as a reason to auto-close a bug if FixBisectionAutoClose is set to true.
* all: use errors.As instead of .(type)Taras Madan2023-07-241-2/+3
|
* dashboard/app/util_test.go: *HTTPError not HTTPErrorTaras Madan2023-07-201-1/+1
|
* dashboard: allow admins to retry individual bisectionsSpace Meyer2023-06-121-115/+96
| | | | | | | | | | Changes to our rootfs, compilers or bisection logic regularly cause regressions in our bisection accuracy. Retrying them currently entails fiddling with the GCP datastore directly or mass deleting all failed bisections. This change will allow us to retry specific bisections with a single click.
* dashboard: preserve Bug modifications in doneJobAleksandr Nogikh2023-05-191-0/+4
| | | | | | | | | If a reproducer was revoked as a result of a fix bisection, we would query and update Bug twice during the same transaction. But datastore follows the "Read Committed" policy, so we de facto lose the updates of the HeadReproLevel. Ensure that we query and save Bug only once during doneJob.
* dashboard: add hints to the new repro emailAleksandr Nogikh2023-04-281-3/+3
| | | | | | | Otherwise we only display #syz test hints for bugs which originally had a reproducer. Also, change the wording a bit.
* dashboard: drop #syz unset from bug's templateAleksandr Nogikh2023-04-271-9/+0
| | | | | We don't mention the whole list of #syz set labels there, so it will only confuse people.
* dashboard: list sample commands at the bottom of bug reportsAleksandr Nogikh2023-04-271-6/+60
| | | | | | | | This should make commands more visible to the users and help those who don't remember the exact syntax and don't want to always visit the documentation page. Ignore sample commands during incoming message parsing.
* dashboard: limit the rate of job generation on pullJobAleksandr Nogikh2023-04-191-0/+5
| | | | | syz-cis call the method every 10 seconds, there's no sense in executing the heavy logic that much often.
* dashboard: support multiple simultaneous jobsAleksandr Nogikh2023-01-191-7/+1
| | | | | | | Modify job_poll never to return already started jobs. Introduce a special job_reset API call to clear the "started" flag for the specified list of managers.
* dashboard: adjust the upstream notification emailAleksandr Nogikh2023-01-181-4/+4
| | | | | Make it more clear - de facto we're just sending the report to the next reporting stage.
* dashboard: never report unreliable bisectionsAleksandr Nogikh2022-05-311-0/+48
| | | | | | | | | | Currently the dashboard does not report unreliable bisections themselves, but there was a way in which they could still leak. The recently detected case is when the bisection was done using a syz repro, no reporting was made, but with a message about a newly found C repro syzbot included the bisection info and Cc'd bisection-sourced emails. Fix that behavior and introduce one new test.
* dashboard/app: update to go116 (#2959)Taras Madan2022-01-051-1/+1
| | | | | | 1. Updated the "include"s. 2. No logs read API in the AppEngine anymore. Replaced by the GCP logging API. 3. Use "GO111MODULE=off gcloud beta app deploy ./dashboard/app/app.yaml --no-promote" to test new deployment. 4. Updated the documentation.
* dashboard/app: refactor the calls to httpRequests (#2847)tarasmadan2021-10-261-3/+3
| | | | | * dashboard/app: funcs GET and AuthGET are similar * dashboard/app: funcs GET and POST are similar * dashboard/app: uplevel httpRequest calls to GET or AuthGET
* all: make all kernel commit hashes 12 byte longAleksandr Nogikh2021-07-131-11/+11
| | | | | | | | | Currently email and web templates use 8 byte representation of commit hashes. While this is enough for syzkaller, it becomes less and less suitable for Linux kernel tags. Switch to 12 byte representation for all Linux kernel commit hash mentions.
* dashboard/app: add prefix to email subjectsDmitry Vyukov2021-03-051-2/+3
| | | | Fixes #2435
* dashboard/app: allow CCing people for bug on specific managerDmitry Vyukov2021-01-141-1/+4
| | | | | | Currently we can CC specific people for bugs on a particular kernel repo (always, upstream, for build bugs). Add similar functionality for bugs on a particular manager. This will be needed to CC people on clang instances.
* dashboard/app: show more detailed info about bisectionsDmitry Vyukov2020-10-221-2/+2
| | | | | | | | 1. Split cause/fix bisections in the bug table. 2. Show if bisection is inconclusive/unreliable in the bug table. 3. Show if bisection is unreliable on the bug page. Update #2098
* dashboard/app: say "issue" instead of "crash"Dmitry Vyukov2020-07-141-41/+41
| | | | | | | | | | | | | | | | | | | | We've got several complains re using of word "crash" in all syzbot reports, e.g.: https://groups.google.com/d/msg/syzkaller-bugs/8rFLFgQR9fo/HBYUXIRyBAAJ https://groups.google.com/d/msg/syzkaller-bugs/3nlcT8Wn7hg/8Th16X3DBAAJ Another suggested that "crash" is too hard for e.g. a LOCKDEP splat: https://groups.google.com/d/msg/syzkaller/YzHLAU0dXpI/WOqq1ggBBQAJ Another terminology complaint was regarding the following fact. When we test a patch, we only detect if it still triggers _any_ issue (not necessary the original one). Currently we way "still triggers crash" (without any article, which is probably wrong from English perspective anyway). We did not say "the", but people assumed that and complained. Explicitly say "a". Also replace all uses of "bug" with "issue" for consistency. And use "final oops" instead of "final crash", which seems to be standard terminology at least for Linux: https://en.wikipedia.org/wiki/Linux_kernel_oops
* all: fix comments formatDmitry Vyukov2020-07-121-8/+8
| | | | | | | Fix capitalization, dots at the end and two spaces after a period. Update #1876
* all: use more respective languageDmitry Vyukov2020-06-111-1/+1
| | | | | | | | 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
* .golangci.yml: enable funlen checkerDmitry Vyukov2020-06-051-0/+1
| | | | Checks for too long functions (based on lines and statements).
* .golangci.yml: enable godot checkerDmitry Vyukov2020-06-051-2/+2
| | | | | A good one. Lots of fixed comments are contributed by episodic contributors. So it's good to catch these earlier.
* dashboard, syz-ci: add blacklist for bisection resultsAndrey Konovalov2020-06-031-2/+4
| | | | | | | Currently only ignores the commit that adds the Raw Gadget interface. Requested here: https://groups.google.com/g/syzkaller-bugs/c/sZUeGC3Fh-o/m/t_5cKPrMAQAJ
* all: fix new golangci-lint warningsDmitry Vyukov2020-03-131-1/+1
| | | | Newer version started producing more warnings. Fix them.
* dashboard/app: fix testing for go1.11 runtimeDmitry Vyukov2020-01-291-4/+1
| | | | | | | | | | 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>
* syz-ci: allow enabling bisect cause and fix jobs separatelyDmitry Vyukov2019-11-271-0/+1
| | | | | Some backport-only kernels may only be interested in fix bisections. Allow enabling these separately.
* dashboard/app: don't report bisections pointing to release commitsDmitry Vyukov2019-11-271-1/+3
| | | | | | | | | | | They should have been detected by "same binary" logic. But the problem is that we may use different compilers for different commits and they switch exactly at release commits. So we can build the release with a differnet compiler than the rest of commits and then obviously it won't be "same binary". Detect release commits separately. Update #1271
* dashboard/app: auto-close bugs after successful fix bisectionDmitry Vyukov2019-11-071-1/+54
| | | | | Add an optional feature for subj. Should be useful for unmaintained namespaces like Linux LTS.
* dashboard/app: slightly tidy up bisection resultsDmitry Vyukov2019-11-071-2/+2
| | | | | | | Add new lines around bisection block as it was before. Remove kernel tree, does not seem to be critical. Make it clear what is cause bisection and what is fix bisection (currently we have 2 "Bisection" which is not very helpful).
* pkg/bisect: detect wrong bisectionsDmitry Vyukov2019-11-071-0/+109
| | | | | | | | Detect bisection to merge commits and to commits that don't affect kernel binary (comments, other arches, whitespaces, etc). Such bisections are not reported in emails (but shown on web). Update #1271
* syz-ci: send build info for failed bisectionsZubin Mithra2019-11-051-1/+1
| | | | | | | | | * When fix bisections fails due to a crash on HEAD, the dashboard needs to keep track of which commit the crash occured at. In order to do this, send correct commit information to the dashboard. * Modify mail_bisect_result.txt to be clearer on what BisectResult.KernelCommit represents. Modify test in bisect_test.go to accommodate the changes in templates.
* dashboard/app: add link to bug to reproducersDmitry Vyukov2019-10-251-5/+9
| | | | | As requested by users. Fixes #1396
* dashboard/app: fix typo and change reporting descriptionZubin Mithra2019-09-041-2/+2
| | | | | | * Fix a typo in mail_bisect_result.txt related to the "syz fix:" line. * Improve the description to make it clearer why sending a "syz fix:" is important.
* dashboard/app: allow reporting of BisectFix resultsZubin Mithra2019-08-301-2/+54
| | | | | | | | | | | | | * Modify mail_bisect_result.txt to allow for sending fix bisection results. * Modify BisectResult to have a Fix field; introduce selectBisect for use within the template for choosing between BisectCause/BisectFix fields. * Modify bisectFromJob() to return BisectResult with Fix field set if relevant. * Modify the tests inside bisect_test.go to account for bisect fix related reporting emails. * Modify incomingMail() to ignore any emails from syzbot itself.
* dashboard/app: allow main UI to show bisect resultsZubin Mithra2019-08-081-0/+99
| | | | | | | | | | | * Modify uiBug type. Rename BisectCause to BisectCauseDone. Introduce BisectFixDone. * Modify createUIBug() and MergeUIBug() to set the above fields appropriately. * Modify bug_list to display the bisection status; remove yesSort() as it is not used anymore. Adjust ".list_table .stat" to appropriate width. * Add TestBugBisectionStatus() to check bisection status on main page. * Add file from running "make generate": pkg/html/generated.go
* dashboard/app: allow fix bisection results to be visible on web UIZubin Mithra2019-08-011-0/+103
| | | | | | | | | | | * Modify the dashboard/app/bug.html template to show fix bisection results. * Modify handleBug() to fetch and create a uiJob for fix bisection results. * Modify loadBisectJob() to fetch jobs based on a specified jobType. Change all callers to pass in jobType info into loadBisectJob(). * Add TestBugBisectionResults() to ensure bisection results show up as expected.
* dashboard/app: allow the dashboard to create BisectFix jobsZubin Mithra2019-07-301-5/+93
| | | | | | | | | | | | * Modify createBisectJob() to retrieve bugs that are potential candidates for both BisectCause and BisectFix. * Modify TestBisectCause() to account for BisectFix jobs that are returned when polling. * Add TestBisectFixJob() to check that BisectFix jobs are returned only after 30 days of reporting. * pollCompletedJobs() is currently called to fetch finished bisection jobs for reporting purposes. Modify it to not return BisectFix jobs so that they are not reported.
* dashboard/app: fix infinite emailsDmitry Vyukov2019-03-241-0/+81
| | | | | | | | | | We override crash with the crash used for bisection to make the information more consistent. However if bisection crash only have syz repro and there is now another crash with C repro, then we always think that we have not reported C repro and continue sending the same report again and again. Don't override the crash with bisection crash in such case.
* dashboard/app: add bisection link to emailsDmitry Vyukov2019-03-221-3/+10
| | | | | | | | Add link to more information about bisection process to emails that contain bisection results. This seems to be a hot topic for questions. Update #501
* dashboard/app: use 12-char hash in Fixes tagsDmitry Vyukov2019-03-211-2/+2
| | | | | | | @ebiggers pointed out that Fixes tags should use 12-char hash: https://groups.google.com/d/msg/syzkaller-bugs/yUhRrLD6T6A/3TMwOWvWAgAJ I can't find any documentation on this, but it looks like most existing tags follow this convention so use 12-char hashes.
* dashboard/app: request test/bisect jobs separatelyDmitry Vyukov2019-03-201-12/+10
| | | | | | | | Allow separate sets of managers for patch testing and for bisection. This makes things more flexible on syz-ci deployment side. Remove previous hacks for bisection deployment. Update #501
* dashboard/app: report bisection results to external reportingDmitry Vyukov2019-03-191-0/+42
| | | | Update #501
* dashboard/app: fix a typo in commentDmitry Vyukov2019-03-181-1/+1
|