{{/* 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"}}

syzbot

{{if not (eq .URLPath "/admin")}} {{end}}

{{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}} {{if $.ShowNamespace}} {{end}} {{if $.DispLastAct}} {{end}} {{if $.DispDiscuss}} {{end}} {{if $.ShowPatched}} {{end}} {{if $.ShowStatus}} {{end}} {{if $.ShowPatch}} {{end}} {{range $b := .Bugs}} {{if $.ShowNamespace}}{{end}} {{if $.DispLastAct}} {{end}} {{if $.DispDiscuss}} {{$d := $b.Discussions}} {{end}} {{if $.ShowPatched}} {{end}} {{if $.ShowStatus}} {{end}} {{if $.ShowPatch}} {{end}} {{end}}
KernelTitle Rank {{template "info_link" "https://github.com/google/syzkaller/blob/master/pkg/report/README.md"}} Repro Cause bisect Fix bisect Count Last ReportedLast activityDiscussionsPatchedStatusClosed Patch
{{$b.Namespace}} {{$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}} {{formatLateness $.Now $b.LastActivity}} {{- if not $d.LastPatchMessage.IsZero -}} PATCH [{{formatLateness $.Now $d.LastPatchMessage}}] {{- else if $d.ExternalMessages -}} 💬 {{$d.ExternalMessages}} [{{formatLateness $.Now $d.LastMessage}}] {{- end -}} {{len $b.PatchedOn}}/{{$b.NumManagers}} {{if $b.ExternalLink}} {{$b.Status}} {{else}} {{$b.Status}} {{end}} {{formatLateness $.Now $b.ClosedTime}} {{template "fix_commits" $b.Commits}}
{{end}} {{end}} {{end}} {{/* List of managers, invoked with []*uiManager */}} {{define "manager_list"}} {{if .}} {{range $mgr := .List}} {{if $mgr.TotalExecsBad}} {{else}} {{end}} {{with $build := $mgr.CurrentBuild}} {{else}} {{end}} {{end}}
Instances [{{link .RepoLink "tested repos"}}]:
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}}broken{{formatStat $mgr.TotalExecs}}{{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}} all only
{{end}} {{end}} {{/* List of fixing commits, invoked with []*uiCommit */}} {{define "fix_commits"}} {{range $com := .}} {{if $com.Hash}} {{formatTagHash $com.Hash}} {{end}} {{link $com.Link $com.Title}} {{end}} {{end}} {{/* Bisection result, invoked with *uiJob */}} {{/* Show bisection results */}} {{define "bisect_results"}} {{if .}} {{$causeJob := 1}} {{$fixJob := 2}} {{if .ErrorLink}} {{if eq .Type $causeJob}} Cause bisection: failed {{else if eq .Type $fixJob}} {{if .FixCandidate}} Fix candidate bisection: failed {{else}} Fix bisection: failed {{end}} {{end}} ({{link .ErrorLink "error log"}}{{if .LogLink}}, {{link .LogLink "bisect log"}}{{end}})
{{else if .Commit}} {{if eq .Type $causeJob}} Cause bisection: introduced by {{else if eq .Type $fixJob}} {{if .FixCandidate}} Fix commit to backport {{else}} Fix bisection: fixed by {{end}} {{end}} ({{link .LogLink "bisect log"}}) {{print .Flags}}:
{{if .FixCandidate}}tree: {{link .KernelLink .KernelAlias}}
{{end}} commit {{.Commit.Hash}}
Author: {{.Commit.Author}}
Date: {{formatKernelTime .Commit.Date}}

  {{link .Commit.Link .Commit.Title}}

{{else if .Commits}} {{if eq .Type $causeJob}} Cause bisection: the cause commit could be any of {{else if eq .Type $fixJob}} {{if .FixCandidate}}Fix candidate detection{{else}}Fix bisection{{end}} the fix commit could be any of {{end}} ({{link .LogLink "bisect log"}}):
{{range $com := .Commits}}   {{formatTagHash $com.Hash}} {{link $com.Link $com.Title}}
{{end}}
{{else}} {{if eq .Type $causeJob}} Cause bisection: the issue happens on the oldest tested release {{else if eq .Type $fixJob}} {{if .FixCandidate}}Fix candidate detection:{{else}}Fix bisection:{{end}} the issue occurs on the latest tested release {{end}} ({{link .LogLink "bisect log"}})
{{end}} {{if .CrashLogLink}} Crash: {{link .CrashReportLink .CrashTitle}} ({{link .CrashLogLink "log"}})
Repro: {{optlink .Crash.ReproCLink "C"}} {{optlink .Crash.ReproSyzLink "syz"}} {{optlink .Crash.KernelConfigLink ".config"}}
{{end}} {{if not .Reported}}[report pending]
{{end}} {{optlink .RestartJobLink "🔄 retry this bisection"}}   {{optlink .InvalidateJobLink "❌ mark as invalid"}} {{end}} {{end}} {{/* List of fixing commits, invoked with *uiCrashTable */}} {{/* Show crashes */}} {{define "crash_list"}} {{if .}} {{if .Caption}}{{end}} {{range $b := .Crashes}} {{end}}
{{.Caption}}:
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}}
* Struck through repros no longer work on HEAD. {{end}} {{end}} {{/* List of jobs, invoked with *uiJobList */}} {{define "job_list"}} {{if and $ $.Jobs}} {{if not $.PerBug}}{{end}} {{if not $.PerBug}}{{end}} {{range $job := $.Jobs}} {{if not $.PerBug}}{{end}} {{if not $.PerBug}}{{end}} {{end}}
{{$.Title}}
BugCreated Duration User Patch RepoManagerResult
{{$job.BugTitle}}{{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}}{{$job.Manager}} {{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}}
{{end}} {{end}} {{/* Checkbox input, invoked with *uiCheckbox */}} {{define "input-checkbox"}}

{{$.Caption}}

{{range .Values}} {{if .Caption}}{{.Caption}}{{else}}{{.ID}}{{end}}
{{end}}
{{end}} {{/* Range slider input, invoked with *uiSlider */}} {{define "input-slider"}}
{{.Val}}
{{end}} {{/* Multiple text fields */}} {{define "input-multi-text"}}

{{.Caption}}:

{{$input := .}} {{range .Vals}} {{else}} {{end}}
{{end}} {{/* List of discussions, invoked with []*uiBugDiscussion */}} {{define "discussion_list"}} {{if .}} {{range $item := .}} {{end}}
Title Replies (including bot) Last reply
{{link $item.Link $item.Subject}} {{$item.External}} ({{$item.Total}}) {{formatTime $item.Last}}
{{end}} {{end}} {{/* List of test results, invoked with []*dashapi.JobInfo */}} {{define "test_results"}} {{if .}} {{range $item := .}} {{if ne $item.CrashTitle ""}} {{else if ne $item.ErrorLink ""}} {{else}} {{end}} {{end}}
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}} {{link $item.CrashReportLink "[report]"}} {{$item.CrashTitle}} Failed due to {{link $item.ErrorLink "an error"}}; will retry later Didn't crash
{{end}} {{end}} {{/* List of failed repro attempts, invoked with []*uiReproAttempt */}} {{define "repro_attempts"}} {{if .}} {{range $item := .}} {{end}}
Time Manager Log
{{formatTime $item.Time}} {{$item.Manager}} {{link $item.LogLink "repro log"}}
{{end}} {{end}} {{/* List of AI jobs, invoked with []*uiAIJob */}} {{define "ai_job_list"}} {{range $job := .}} {{end}}
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}}
{{end}}