aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/html
Commit message (Collapse)AuthorAgeFilesLines
...
* dasboard: add crash stats pageAleksandr Nogikh2022-02-251-1/+59
| | | | | Show top crashers for X last days. Show graph with daily shares of crashes that satisfy user-entered regexps.
* dashboard/app: add page with manager stats graphsDmitry Vyukov2021-12-061-0/+57
|
* tools/syz-testbed: show diffs and p-valuesAleksandr Nogikh2021-12-061-0/+13
| | | | | | | | | | Enable the user to specify the pivot column for the stats table. If such a column is set, calculate and print the relative difference between checkouts and p-values for the estimation of statistical significance of the experimental data. For the p-value calculation use the existing implementation from the go-benchstat tool.
* all: adjust Kernel Build Commit column widthAleksandr Nogikh2021-07-131-1/+0
| | | | | | | | After 12 digit kernel commit hashes were introduced, it turned out that there remains one table that cannot accommodate such values. Fix this by removing the max-width property from .list_table .stat. This class is not used for data that needs to be truncated anyway.
* dashboard/app/static/style.css: make tag cell widerAleksandr Nogikh2021-07-131-2/+1
| | | | | | | 40pt is not enough for 12 byte hashes. At the same time, 60pt is more than needed for 8 byte hashes. Remove fixed width for the tag column, let only the upper limit remain.
* all: make all kernel commit hashes 12 byte longAleksandr Nogikh2021-07-131-1/+1
| | | | | | | | | 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.
* pkg/build, pkg/html: make bash path OS compatibletigergao992020-10-301-1/+1
|
* tools/syz-reporter: add summary and reproducer informationJouni Hogander2020-10-241-0/+1
|
* dashboard/app: show more detailed info about bisectionsDmitry Vyukov2020-10-221-1/+8
| | | | | | | | 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
* pkg/build, pkg/html: move generation logic into separate scriptsDmitry Vyukov2020-09-152-8/+15
| | | | | | | | Mentions of "// Code generated ... DO NOT EDIT." in these Go files somehow prevents golangci-lint from checking them. And github treats them as auto-generated as well. I guess some code somewhere has some imprecise heuristics. Move generation into separate shell scripts. Also cleaner.
* all: mark auto-generated filesDmitry Vyukov2020-07-292-2/+3
| | | | | | | | | | Use the standard Go convention for Go files: https://golang.org/pkg/cmd/go/internal/generate Use github linguish for other files: https://github.com/github/linguist#generated-code Both are understood by github and should result in these files being collapsed in PRs by default.
* dashboard/app: add navigation buttonsDmitry Vyukov2020-07-091-0/+24
| | | | | | Currently we have only "fixed" link at the top of the page. "invalid" is missing and this is not scalable. Add natigation buttons (tabs) for main pages.
* pkg/html: add function to format JS timeDmitry Vyukov2020-07-091-0/+5
|
* pkg/html: regenerateDmitry Vyukov2020-04-291-0/+5
|
* dashboard/app: allow reporting of BisectFix resultsZubin Mithra2019-08-301-0/+8
| | | | | | | | | | | | | * 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-3/+2
| | | | | | | | | | | * 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
* pkg/html: regenerateDmitry Vyukov2019-04-081-3/+3
|
* dashboard/app: split dashboard per-namespaceDmitry Vyukov2019-04-081-0/+6
| | | | | | | 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.
* pkg/html: update generated fileDmitry Vyukov2019-03-251-0/+7
|
* dashboard/app: properly handle build failuresDmitry Vyukov2019-03-251-0/+8
| | | | | | | | | Separate kernel and syzkaller build failures. Fix logic to understand when a build is fixed: look if kernel/syzkaller commit changes to understand if it's a new good build or re-upload of an old build. Fixes #1014
* pkg/html: add reference for 12-char hashes in tagsDmitry Vyukov2019-03-211-1/+2
|
* dashboard/app: use 12-char hash in Fixes tagsDmitry Vyukov2019-03-211-0/+10
| | | | | | | @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, syz-ci: bisection supportDmitry Vyukov2019-03-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds bulk of support for bisection to dashboard/app and syz-ci: - APIs to send bisection jobs and accept results - syz-ci logic to execute bisection jobs - formatting of emails with results - showing of results on dashboard Some difficulties we have to overcome: - since linux is frequently build/boot broken, lots of bisections are inconclusive, need to present such results too - git bisect is poorly suitable for automation, have to resort to output parsing (is output stable?) - git bisect turns out to fail (exit with non-0 status) when bisection is inconclusive (multiple potential cause commits) - older syzkaller revisions can't be built with newer (broken) kernel header, e.g.: ebtables.h:197:19: error: invalid conversion from ‘void*’ to ‘ebt_entry_target*’ - newer compilers produce more warnings and break old syzkaller builds, e.g.: kvm.S.h:6:12: error: ‘kvm_asm64_vm86’ defined but not used [-Werror=unused-const-variable=] - figuring relevant emails to CC from a commit is non-trivial: besides commit author, there can be some emails in commit tags, or not, which tags to use is an interesting question (some may include irrelevant emails) we can also run get_maintainers.pl on the commit, but this can produce too wide list if commit touches lots of files, it can also produce too small list, and then we need to resort to blame - for inconclusive bisection we probably don't need to include emails referenced in the commits (there can be too many of these commits) - need to be careful to exclude own syzbot email from commit CC list, now syzbot emails are referenced in some commits (Reported-by/Tested-by/etc) (can cause some kind of infinite recursion) - lots of commits reference stable mailing list, we should not include it in CC because it's referenced for backports rather then bug reports - since we add new Bug entity fields which we use in queries, whole datastore need to be upgrades to add the new field to index - we must not discard the crash that was used for bisection (treat it as a reported crash) - bisection results need 2 forms of reports: one when we add bisection results to already reported bug another when we report a bug first time with bisection results - when reporting a bug with bisection results we need to use the crash that was used for bisection - some fraction of bisections will probably fail with various errors and we will need some mechanism to retry bisection after the root cause is resolved this is not implemented yet - linux-next is problematic for 2 reasons: fix bisection can't possibly run on linux-next as commits are not reachable from HEAD lots of commits are missing in linux-next (even in linux-next-history) e.g. we have some c63e9e91a254a52 which is now missing in linux-next/linux-next-history - older kernels can't be build with fresh gcc/binutils/perl/make/glibc for now we have to stop at v3.9 (this only requires switching gcc several times along the way) - kernels past v4.11 do not build with gcc 7 and 8 (undefined reference to `____ilog2_NaN') - v4.1 and back have only compiler-gcc5.h - v3.17 and back have only compiler-gcc4.h - v3.6 and back do not have make olddefconfig - compat socket calls can't be bisected past "x86/entry/syscalls: Wire up 32-bit direct socket calls" (v4.10) because of https://syzkaller.appspot.com/bug?id=b5b150e322d5f48c869bcf1528cdbee08d1421cb - v2.6.28 and below does not work with modern make: *** mixed implicit and normal rules: deprecated syntax - v3.8 build fails: Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373. kernel/Makefile:134: recipe for target 'kernel/timeconst.h' failed - make 3.81 works for v2.6.28. 3.81 almost works with current HEAD, you need to run make twice because first run spuriously fails with: - v2.6.28 with gcc-4.9.4 broken with: include/linux/kvm.h:240:9: error: duplicate member ‘padding’ - but even defconfig fails: VDSO arch/x86/vdso/vdso.so.dbg gcc: error: elf_x86_64: No such file or directory gcc: error: unrecognized command line option ‘-m’ It seems that we also need old binutils. - for v3.8 and below we need perl-5.14.4. Unfortunately this or any manually built perl doesn't work for later kernels: Can't locate strict.pm in @INC - kernels starting from 4.14 and older are boot broken: https://lkml.org/lkml/2018/9/7/648 - kernels older than 4.12 are broken during netdev setup (fixed by commit 675c8da049fd6556eb2d6cdd745fe812752f07a8) Update #501
* pkg/html: add more helper functionDmitry Vyukov2019-03-171-11/+49
| | | | | | | Add optlink, formatKernelTime, formatCommitTableTitle. Will be useful to format bisection emails. Update #501
* dashboard/app: poll commits infoDmitry Vyukov2019-02-172-2/+20
| | | | | | | | | | | | | | | 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
* dashboard/app: enlarge stats value column for managerDmitry Vyukov2018-11-231-2/+2
| | | | When numbers become large, they may not fit into 100px.
* syz-manager: modernize web UIDmitry Vyukov2018-11-222-0/+331
1. Use dashboard style. 2. Allow sorting of tables. 3. Show old crashes in grey. 4. Use tables instead of text output for more pages. 5. Show corpus inputs on a separate page to allow copy-pasting. 6. Use standard JS sorting instead of custom bubble sort (much faster). 7. Fix off-by one in table sorting. Fixes #694