{{/*
Copyright 2017 syzkaller project authors. All rights reserved.
Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
*/}}
{{/* Info icon with a link, invoked with an URL string */}}
{{define "info_link"}}
🛈
{{end}}
{{/* Common page head part, invoked with *uiHeader */}}
{{define "head"}}
{{if .AnalyticsTrackingID}}
{{end}}
{{end}}
{{/* Common page header, invoked with *uiHeader */}}
{{define "header"}}
{{if not (eq .URLPath "/admin")}}
{{end}}
syzbot
{{if .Admin}}
admin |
{{end}}
{{if .LoginLink}}
sign-in |
{{end}}
mailing list |
source |
docs
{{if .Message}}
{{end}}
{{end}}
{{/* List of enabled filters, invoked with *uiBugFilter */}}
{{define "bug_filter"}}
{{if .Filter.Any}}
Applied filters:
{{if .Filter.Manager}}
Manager={{.Filter.Manager}} ({{link (call .DropURL "manager" "") "drop"}})
{{end}}
{{if .Filter.OnlyManager}}
Only Manager={{.Filter.OnlyManager}} ({{link (call .DropURL "only_manager" "") "drop"}})
{{end}}
{{if .Filter.NoSubsystem}}
NoSubsystem={{.Filter.NoSubsystem}} ({{link (call .DropURL "no_subsystem" "") "drop"}})
{{end}}
{{$drop := .DropURL}}
{{range .Filter.Labels}}
Label={{.}} ({{link (call $drop "label" .) "drop"}})
{{end}}
{{end}}
{{end}}
{{/* List of bugs, invoked with *uiBugGroup */}}
{{define "bug_list"}}
{{if .}}
{{if .Bugs}}
| Kernel | {{end}}Title | Rank {{template "info_link" "https://github.com/google/syzkaller/blob/master/pkg/report/README.md"}} | Repro | Cause bisect | Fix bisect | Count | Last | Reported | {{if $.DispLastAct}}Last activity | {{end}} {{if $.DispDiscuss}}Discussions | {{end}} {{if $.ShowPatched}}Patched | {{end}} {{if $.ShowStatus}}Status | {{end}} {{if $.ShowPatch}}Closed | Patch | {{end}}
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{$b.Namespace}} | {{end}}{{$b.Title}} {{- range $b.Labels}} {{link .Link .Name}} {{- end}} | {{$b.ImpactScore}} | {{formatReproLevel $b.ReproLevel}} | {{print $b.BisectCause}} | {{print $b.BisectFix}} | {{$b.NumCrashes}} | {{formatLateness $.Now $b.LastTime}} | {{if $b.ExternalLink}} {{formatLateness $.Now $b.ReportedTime}} {{else}} {{formatLateness $.Now $b.ReportedTime}} {{end}} | {{if $.DispLastAct}}{{formatLateness $.Now $b.LastActivity}} | {{end}} {{if $.DispDiscuss}} {{$d := $b.Discussions}}{{- if not $d.LastPatchMessage.IsZero -}} PATCH [{{formatLateness $.Now $d.LastPatchMessage}}] {{- else if $d.ExternalMessages -}} 💬 {{$d.ExternalMessages}} [{{formatLateness $.Now $d.LastMessage}}] {{- end -}} | {{end}} {{if $.ShowPatched}}{{len $b.PatchedOn}}/{{$b.NumManagers}} | {{end}} {{if $.ShowStatus}}{{if $b.ExternalLink}} {{$b.Status}} {{else}} {{$b.Status}} {{end}} | {{end}} {{if $.ShowPatch}}{{formatLateness $.Now $b.ClosedTime}} | {{template "fix_commits" $b.Commits}} | {{end}}
| Name | Last active | Uptime | Corpus | Coverage {{template "info_link" "https://github.com/google/syzkaller/blob/master/docs/coverage.md"}} | Crashes | Execs | Kernel build | syzkaller build | Bugs | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Commit | Config | Freshness | Status | Commit | Freshness | Status | All | Only | |||||||||||||||
| {{link $mgr.PageLink $mgr.Name}} | {{formatLateness $mgr.Now $mgr.LastActive}} | {{formatDuration $mgr.CurrentUpTime}} | {{formatStat $mgr.MaxCorpus}} | {{if $mgr.CoverLink}} {{end}} {{formatStat $mgr.MaxCover}} {{if $mgr.CoverLink}} {{end}} | {{formatStat $mgr.TotalCrashes}} | {{if $mgr.TotalExecsBad}}broken | {{else}}{{formatStat $mgr.TotalExecs}} | {{end}} {{with $build := $mgr.CurrentBuild}}{{link $build.KernelCommitLink (formatTagHash $build.KernelCommit)}} | {{link $build.KernelConfigLink ".config"}} | {{formatLateness $mgr.Now $build.KernelCommitDate}} | {{if $mgr.FailedBuildBugLink}}failing{{end}} | {{link $build.SyzkallerCommitLink (formatShortHash $build.SyzkallerCommit)}} | {{formatLateness $mgr.Now $build.SyzkallerCommitDate}} | {{if $mgr.FailedSyzBuildBugLink}}failing{{end}} | {{else}}{{end}} | all | only | ||||||
| Time | Kernel | Commit | Syzkaller | Config | Log | Report | Syz repro | C repro | VM info | Assets (help?) | Manager | Title |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{formatTime $b.Time}} | {{$b.KernelAlias}} | {{link $b.KernelCommitLink (formatTagHash $b.KernelCommit)}} | {{link $b.SyzkallerCommitLink (formatShortHash $b.SyzkallerCommit)}} | {{if $b.KernelConfigLink}}.config{{end}} | {{if $b.LogLink}}{{if $b.LogHasStrace}}strace{{else}}console{{end}} log{{end}} | {{if $b.ReportLink}}report{{end}} | {{if $b.ReproSyzLink}}syz{{end}}{{if $b.ReproLogLink}} / log{{end}} | {{if $b.ReproCLink}}C{{end}} | {{if $b.MachineInfoLink}}info{{end}} | {{range $i, $asset := .Assets}} [{{$asset.Title}}{{if $asset.FsckLogURL}} ({{if $asset.FsIsClean}}clean{{else}}corrupt{{end}} fs){{end}}] {{end}} | {{$b.Manager}} | {{$b.Title}} |
| Bug | {{end}}Created | Duration | User | Patch | Repo | {{if not $.PerBug}}Manager | {{end}}Result |
|---|---|---|---|---|---|---|---|
| {{$job.BugTitle}} | {{end}}{{link $job.ExternalLink (formatTime $job.Created)}} | {{formatDuration $job.Duration}}{{if gt $job.Attempts 1}} ({{$job.Attempts}}){{end}} | {{if eq $job.Type 0}} {{if $job.User}}{{$job.User}} {{- else if $job.TreeOrigin}}tree origin {{- else}}retest repro{{end}} {{else if eq $job.Type 1}} bisect {{else if eq $job.Type 2}} {{if $job.FixCandidate}}fix candidate{{else}}bisect fix{{end}} {{end}} | {{optlink $job.PatchLink "patch"}} | {{link $job.KernelCommitLink $job.KernelAlias}} | {{if not $.PerBug}}{{$job.Manager}} | {{end}}
{{if $job.ErrorLink}}
{{link $job.ErrorLink "error"}}
{{else if and $job.CrashTitle (eq $job.Type 0)}}
{{optlink $job.CrashReportLink "report"}}
{{else if formatTime $job.Finished}}
OK
{{if ne $job.Type 0}}
({{if $job.Commit}}1{{else}}{{len $job.Commits}}{{end}})
{{end}}
{{else if formatTime $job.Started}}
running
{{else}}
pending
{{end}}
{{if $job.LogLink}}
{{link $job.LogLink "job log"}}
{{end}}
{{if $job.CrashLogLink}}
{{optlink $job.CrashLogLink "log"}}
{{end}}
{{ if $job.InvalidatedBy }}
marked invalid by {{$job.InvalidatedBy}} {{end}} {{if and $.PerBug (or .InvalidateJobLink .RestartJobLink)}} {{optlink .RestartJobLink "🔄 retry this bisection"}} {{optlink .InvalidateJobLink "❌ mark as invalid"}}{{end}} |
| Title | Replies (including bot) | Last reply |
|---|---|---|
| {{link $item.Link $item.Subject}} | {{$item.External}} ({{$item.Total}}) | {{formatTime $item.Last}} |
| Date | Name | Commit | Repro | Result | ||
|---|---|---|---|---|---|---|
| {{formatDate $item.Finished}} | {{$item.KernelAlias}} {{if $item.OnMergeBase}}(merge base){{else}}(ToT){{end}} | {{link $item.KernelCommitLink (formatTagHash $item.KernelCommit)}} | {{if $item.ReproCLink}}C {{else if $item.ReproSyzLink}}syz{{end}} | {{if ne $item.CrashTitle ""}}{{link $item.CrashReportLink "[report]"}} {{$item.CrashTitle}} | {{else if ne $item.ErrorLink ""}}Failed due to {{link $item.ErrorLink "an error"}}; will retry later | {{else}}Didn't crash | {{end}}
| Time | Manager | Log |
|---|---|---|
| {{formatTime $item.Time}} | {{$item.Manager}} | {{link $item.LogLink "repro log"}} |
| ID | Workflow | Result | Correct | Bug | Created | Started | Finished | Revision | Error |
|---|---|---|---|---|---|---|---|---|---|
| {{link $job.Link $job.ID}} | {{$job.Workflow}} | {{range $res := $job.Results}} {{if $res.IsBool}} {{$res.Name}}: {{if $res.Value}}✅{{else}}❌{{end}} {{end}} {{end}} | {{$job.Correct}} | {{link $job.DescriptionLink $job.Description}} | {{formatTime $job.Created}} | {{formatTime $job.Started}} | {{formatTime $job.Finished}} | {{link $job.CodeRevisionLink $job.CodeRevision}} | {{$job.Error}} |