Documentation ¶
Overview ¶
Package dashapi defines data structures used in dashboard communication and provides client interface.
Index ¶
- type BisectResult
- type BugListResp
- type BugNotif
- type BugNotification
- type BugReport
- type BugStatus
- type BugUpdate
- type BugUpdateReply
- type Build
- type BuildErrorReq
- type BuilderPollReq
- type BuilderPollResp
- type Commit
- type CommitPollResp
- type CommitPollResultReq
- type Crash
- type CrashID
- type Dashboard
- func (dash *Dashboard) BugList() (*BugListResp, error)
- func (dash *Dashboard) BuilderPoll(manager string) (*BuilderPollResp, error)
- func (dash *Dashboard) CommitPoll() (*CommitPollResp, error)
- func (dash *Dashboard) JobDone(req *JobDoneReq) error
- func (dash *Dashboard) JobPoll(req *JobPollReq) (*JobPollResp, error)
- func (dash *Dashboard) LoadBug(id string) (*LoadBugResp, error)
- func (dash *Dashboard) LogError(name, msg string, args ...interface{})
- func (dash *Dashboard) NeedRepro(crash *CrashID) (bool, error)
- func (dash *Dashboard) Query(method string, req, reply interface{}) error
- func (dash *Dashboard) ReportBuildError(req *BuildErrorReq) error
- func (dash *Dashboard) ReportCrash(crash *Crash) (*ReportCrashResp, error)
- func (dash *Dashboard) ReportFailedRepro(crash *CrashID) error
- func (dash *Dashboard) ReportingPollBugs(typ string) (*PollBugsResponse, error)
- func (dash *Dashboard) ReportingPollClosed(ids []string) ([]string, error)
- func (dash *Dashboard) ReportingPollNotifications(typ string) (*PollNotificationsResponse, error)
- func (dash *Dashboard) ReportingUpdate(upd *BugUpdate) (*BugUpdateReply, error)
- func (dash *Dashboard) UploadBuild(build *Build) error
- func (dash *Dashboard) UploadCommits(commits []Commit) error
- func (dash *Dashboard) UploadManagerStats(req *ManagerStatsReq) error
- type JobDoneFlags
- type JobDoneReq
- type JobPollReq
- type JobPollResp
- type JobType
- type LoadBugReq
- type LoadBugResp
- type LogEntry
- type ManagerJobs
- type ManagerStatsReq
- type NeedReproResp
- type PollBugsRequest
- type PollBugsResponse
- type PollClosedRequest
- type PollClosedResponse
- type PollNotificationsRequest
- type PollNotificationsResponse
- type RecipientInfo
- type RecipientType
- type Recipients
- type Repo
- type ReportCrashResp
- type ReportType
- type ReproLevel
- type RequestCtor
- type RequestDoer
- type RequestLogger
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BisectResult ¶
type BugListResp ¶
type BugListResp struct {
List []string
}
type BugNotif ¶
type BugNotif int
const ( // Upstream bug into next reporting. // If the action succeeds, reporting sends BugStatusUpstream update. BugNotifUpstream BugNotif = iota // Bug needs to be closed as obsoleted. // If the action succeeds, reporting sends BugStatusInvalid update. BugNotifObsoleted // Bug fixing commit can't be discovered (wrong commit title). BugNotifBadCommit )
type BugNotification ¶
type BugNotification struct { Type BugNotif Namespace string Config []byte ID string ExtID string // arbitrary reporting ID forwarded from BugUpdate.ExtID Title string Text string // meaning depends on Type CC []string // deprecated in favor of Recipients Maintainers []string // deprecated in favor of Recipients Recipients Recipients // Public is what we want all involved people to see (e.g. if we notify about a wrong commit title, // people need to see it and provide the right title). Not public is what we want to send only // to a minimal set of recipients (our mailing list) (e.g. notification about an obsoleted bug // is mostly "for the record"). Public bool }
type BugReport ¶
type BugReport struct { Type ReportType Namespace string Config []byte ID string JobID string ExtID string // arbitrary reporting ID forwarded from BugUpdate.ExtID First bool // Set for first report for this bug (Type == ReportNew). Moderation bool NoRepro bool // We don't expect repro (e.g. for build/boot errors). Title string Link string // link to the bug on dashboard CreditEmail string // email for the Reported-by tag Maintainers []string // deprecated in favor of Recipients CC []string // deprecated in favor of Recipients Recipients Recipients OS string Arch string VMArch string UserSpaceArch string // user-space arch as kernel developers know it (rather than Go names) CompilerID string KernelRepo string KernelRepoAlias string KernelBranch string KernelCommit string KernelCommitTitle string KernelCommitDate time.Time KernelConfig []byte KernelConfigLink string Log []byte LogLink string Report []byte ReportLink string ReproC []byte ReproCLink string ReproSyz []byte ReproSyzLink string CrashID int64 // returned back in BugUpdate NumCrashes int64 HappenedOn []string // list of kernel repo aliases CrashTitle string // job execution crash title Error []byte // job execution error ErrorLink string ErrorTruncated bool // full Error text is too large and was truncated PatchLink string BisectCause *BisectResult BisectFix *BisectResult }
BugReport describes a single bug. Used by dashboard external reporting.
type BugUpdate ¶
type BugUpdate struct { ID string // copied from BugReport JobID string // copied from BugReport ExtID string Link string Status BugStatus ReproLevel ReproLevel DupOf string OnHold bool // If set for open bugs, don't upstream this bug. Notification bool // Reply to a notification. FixCommits []string // Titles of commits that fix this bug. CC []string // Additional emails to add to CC list in future emails. CrashID int64 }
type BugUpdateReply ¶
type Build ¶
type Build struct { Manager string ID string OS string Arch string VMArch string SyzkallerCommit string SyzkallerCommitDate time.Time CompilerID string KernelRepo string KernelBranch string KernelCommit string KernelCommitTitle string KernelCommitDate time.Time KernelConfig []byte Commits []string // see BuilderPoll FixCommits []Commit }
Build describes all aspects of a kernel build.
type BuildErrorReq ¶
type BuilderPollReq ¶
type BuilderPollReq struct {
Manager string
}
type BuilderPollResp ¶
type CommitPollResp ¶
type CommitPollResultReq ¶
type CommitPollResultReq struct {
Commits []Commit
}
type Crash ¶
type Crash struct { BuildID string // refers to Build.ID Title string Corrupted bool // report is corrupted (corrupted title, no stacks, etc) Maintainers []string // deprecated in favor of Recipients Recipients Recipients Log []byte Report []byte // The following is optional and is filled only after repro. ReproOpts []byte ReproSyz []byte ReproC []byte }
Crash describes a single kernel crash (potentially with repro).
type Dashboard ¶
type Dashboard struct { Client string Addr string Key string // contains filtered or unexported fields }
func NewCustom ¶
func NewCustom(client, addr, key string, ctor RequestCtor, doer RequestDoer, logger RequestLogger, errorHandler func(error)) *Dashboard
func (*Dashboard) BugList ¶
func (dash *Dashboard) BugList() (*BugListResp, error)
func (*Dashboard) BuilderPoll ¶
func (dash *Dashboard) BuilderPoll(manager string) (*BuilderPollResp, error)
func (*Dashboard) CommitPoll ¶
func (dash *Dashboard) CommitPoll() (*CommitPollResp, error)
func (*Dashboard) JobDone ¶
func (dash *Dashboard) JobDone(req *JobDoneReq) error
func (*Dashboard) JobPoll ¶
func (dash *Dashboard) JobPoll(req *JobPollReq) (*JobPollResp, error)
func (*Dashboard) ReportBuildError ¶
func (dash *Dashboard) ReportBuildError(req *BuildErrorReq) error
func (*Dashboard) ReportCrash ¶
func (dash *Dashboard) ReportCrash(crash *Crash) (*ReportCrashResp, error)
func (*Dashboard) ReportFailedRepro ¶
ReportFailedRepro notifies dashboard about a failed repro attempt for the crash.
func (*Dashboard) ReportingPollBugs ¶
func (dash *Dashboard) ReportingPollBugs(typ string) (*PollBugsResponse, error)
func (*Dashboard) ReportingPollClosed ¶
func (*Dashboard) ReportingPollNotifications ¶
func (dash *Dashboard) ReportingPollNotifications(typ string) (*PollNotificationsResponse, error)
func (*Dashboard) ReportingUpdate ¶
func (dash *Dashboard) ReportingUpdate(upd *BugUpdate) (*BugUpdateReply, error)
func (*Dashboard) UploadBuild ¶
func (*Dashboard) UploadCommits ¶
func (*Dashboard) UploadManagerStats ¶
func (dash *Dashboard) UploadManagerStats(req *ManagerStatsReq) error
type JobDoneFlags ¶
type JobDoneFlags int64
const ( BisectResultMerge JobDoneFlags = 1 << iota // bisected to a merge commit BisectResultNoop // commit does not affect resulting kernel binary BisectResultRelease // commit is a kernel release BisectResultIgnore // this particular commit should be ignored, see syz-ci/jobs.go )
type JobDoneReq ¶
type JobDoneReq struct { ID string Build Build Error []byte Log []byte // bisection log CrashTitle string CrashLog []byte CrashReport []byte // Bisection results: // If there is 0 commits: // - still happens on HEAD for fix bisection // - already happened on the oldest release // If there is 1 commits: bisection result (cause or fix). // If there are more than 1: suspected commits due to skips (broken build/boot). Commits []Commit Flags JobDoneFlags }
type JobPollReq ¶
type JobPollReq struct {
Managers map[string]ManagerJobs
}
type JobPollResp ¶
type LoadBugReq ¶
type LoadBugReq struct {
ID string
}
type LoadBugResp ¶
type ManagerJobs ¶
type ManagerStatsReq ¶
type ManagerStatsReq struct { Name string Addr string // Current level: UpTime time.Duration Corpus uint64 PCs uint64 // coverage Cover uint64 // what we call feedback signal everywhere else CrashTypes uint64 // Delta since last sync: FuzzingTime time.Duration Crashes uint64 SuppressedCrashes uint64 Execs uint64 }
type NeedReproResp ¶
type NeedReproResp struct {
NeedRepro bool
}
type PollBugsRequest ¶
type PollBugsRequest struct {
Type string
}
type PollBugsResponse ¶
type PollBugsResponse struct {
Reports []*BugReport
}
type PollClosedRequest ¶
type PollClosedRequest struct {
IDs []string
}
type PollClosedResponse ¶
type PollClosedResponse struct {
IDs []string
}
type PollNotificationsRequest ¶
type PollNotificationsRequest struct {
Type string
}
type PollNotificationsResponse ¶
type PollNotificationsResponse struct {
Notifications []*BugNotification
}
type RecipientInfo ¶
type RecipientInfo struct { Address mail.Address Type RecipientType }
type RecipientType ¶
type RecipientType int
const ( To RecipientType = iota Cc )
func (RecipientType) String ¶
func (t RecipientType) String() string
type Recipients ¶
type Recipients []RecipientInfo
func (Recipients) Len ¶
func (r Recipients) Len() int
func (Recipients) Less ¶
func (r Recipients) Less(i, j int) bool
func (Recipients) Swap ¶
func (r Recipients) Swap(i, j int)
type ReportCrashResp ¶
type ReportCrashResp struct {
NeedRepro bool
}
type ReportType ¶
type ReportType int
const ( ReportNew ReportType = iota // First report for this bug in the reporting stage. ReportRepro // Found repro for an already reported bug. ReportTestPatch // Patch testing result. ReportBisectCause // Cause bisection result for an already reported bug. ReportBisectFix // Fix bisection result for an already reported bug. )
type ReproLevel ¶
type ReproLevel int
const ( ReproLevelNone ReproLevel = iota ReproLevelSyz ReproLevelC )
type RequestLogger ¶
type RequestLogger func(msg string, args ...interface{})
Click to show internal directories.
Click to hide internal directories.