diff options
| author | Aleksandr Nogikh <nogikh@google.com> | 2023-01-04 13:54:43 +0100 |
|---|---|---|
| committer | Aleksandr Nogikh <wp32pw@gmail.com> | 2023-01-19 11:26:54 +0100 |
| commit | 8b4e854864883d790497e7c4cc302f819b6e2bce (patch) | |
| tree | f26be5380f5c46479351652dffc167d6b965e90a | |
| parent | e9883646d93ed92b96068f3fad8e8c5dc29bd5bd (diff) | |
syz-ci: do logging per job processor
Now that we might have two, it might be helpful to split the logs.
| -rw-r--r-- | syz-ci/jobs.go | 26 | ||||
| -rw-r--r-- | tools/syz-linter/linter.go | 2 |
2 files changed, 16 insertions, 12 deletions
diff --git a/syz-ci/jobs.go b/syz-ci/jobs.go index 7c3da9cf8..af1433200 100644 --- a/syz-ci/jobs.go +++ b/syz-ci/jobs.go @@ -143,7 +143,7 @@ loop: break loop } } - log.Logf(0, "job loop stopped") + jp.Logf(0, "job loop stopped") } func (jp *JobProcessor) pollCommits() { @@ -168,7 +168,7 @@ func (jp *JobProcessor) pollManagerCommits(mgr *Manager) error { if err != nil { return err } - log.Logf(0, "polling commits for %v: repos %v, commits %v", mgr.name, len(resp.Repos), len(resp.Commits)) + jp.Logf(0, "polling commits for %v: repos %v, commits %v", mgr.name, len(resp.Repos), len(resp.Commits)) if len(resp.Repos) == 0 { return fmt.Errorf("no repos") } @@ -183,7 +183,7 @@ func (jp *JobProcessor) pollManagerCommits(mgr *Manager) error { jp.Errorf("failed to poll %v %v: %v", repo.URL, repo.Branch, err) continue } - log.Logf(1, "got %v commits from %v/%v repo", len(commits1), repo.URL, repo.Branch) + jp.Logf(1, "got %v commits from %v/%v repo", len(commits1), repo.URL, repo.Branch) for _, com := range commits1 { // Only the "main" repo is the source of true hashes. if i != 0 { @@ -202,7 +202,7 @@ func (jp *JobProcessor) pollManagerCommits(mgr *Manager) error { jp.Errorf("failed to poll %v %v: %v", repo.URL, repo.Branch, err) continue } - log.Logf(1, "got %v commit infos from %v/%v repo", len(commits1), repo.URL, repo.Branch) + jp.Logf(1, "got %v commit infos from %v/%v repo", len(commits1), repo.URL, repo.Branch) for _, com := range commits1 { // GetCommitByTitle does not accept ReportEmail and does not return tags, // so don't replace the existing commit. @@ -251,7 +251,7 @@ func (jp *JobProcessor) getCommitInfo(mgr *Manager, URL, branch string, commits return nil, err } for _, title := range missing { - log.Logf(0, "did not find commit %q in kernel repo %v/%v", title, URL, branch) + jp.Logf(0, "did not find commit %q in kernel repo %v/%v", title, URL, branch) } return results, nil } @@ -305,16 +305,16 @@ func (jp *JobProcessor) pollJobs() { func (jp *JobProcessor) processJob(job *Job) { req := job.req - log.Logf(0, "starting job %v type %v for manager %v on %v/%v", + jp.Logf(0, "starting job %v type %v for manager %v on %v/%v", req.ID, req.Type, req.Manager, req.KernelRepo, req.KernelBranch) resp := jp.process(job) - log.Logf(0, "done job %v: commit %v, crash %q, error: %s", + jp.Logf(0, "done job %v: commit %v, crash %q, error: %s", resp.ID, resp.Build.KernelCommit, resp.CrashTitle, resp.Error) select { case <-jp.shutdownPending: if len(resp.Error) != 0 { // Ctrl+C can kill a child process which will cause an error. - log.Logf(0, "ignoring error: shutdown pending") + jp.Logf(0, "ignoring error: shutdown pending") return } default: @@ -551,12 +551,12 @@ func (jp *JobProcessor) testPatch(job *Job, mgrcfg *mgrconfig.Config) error { if err != nil { return err } - log.Logf(0, "job: building syzkaller on %v...", req.SyzkallerCommit) + jp.Logf(0, "building syzkaller on %v...", req.SyzkallerCommit) syzBuildLog, syzBuildErr := env.BuildSyzkaller(jp.cfg.SyzkallerRepo, req.SyzkallerCommit) if syzBuildErr != nil { return syzBuildErr } - log.Logf(0, "job: fetching kernel...") + jp.Logf(0, "fetching kernel...") repo, err := vcs.NewRepo(mgrcfg.TargetOS, mgrcfg.Type, mgrcfg.KernelSrc) if err != nil { return fmt.Errorf("failed to create kernel repo: %v", err) @@ -620,7 +620,7 @@ func (jp *JobProcessor) testPatch(job *Job, mgrcfg *mgrconfig.Config) error { return fmt.Errorf("failed to read config file: %v", err) } } - log.Logf(0, "job: testing...") + jp.Logf(0, "job: testing...") results, err := env.Test(3, req.ReproSyz, req.ReproOpts, req.ReproC) if err != nil { return fmt.Errorf("%w\n\nsyzkaller build log:\n%s", err, syzBuildLog) @@ -686,6 +686,10 @@ func aggregateTestResults(results []instance.EnvTestResult) (*patchTestResult, e return nil, anyErr } +func (jp *JobProcessor) Logf(level int, msg string, args ...interface{}) { + log.Logf(level, "%s: "+msg, append([]interface{}{jp.name}, args...)...) +} + // Errorf logs non-fatal error and sends it to dashboard. func (jp *JobProcessor) Errorf(msg string, args ...interface{}) { log.Logf(0, "job: "+msg, args...) diff --git a/tools/syz-linter/linter.go b/tools/syz-linter/linter.go index b52e907ba..c92e7bb88 100644 --- a/tools/syz-linter/linter.go +++ b/tools/syz-linter/linter.go @@ -296,7 +296,7 @@ func (pass *Pass) logFormatArg(n *ast.CallExpr) (arg int, newLine, sure bool) { return -1, false, false } switch fmt.Sprintf("%v.%v", fun.X, fun.Sel) { - case "log.Print", "log.Printf", "log.Fatal", "log.Fatalf", "fmt.Error", "fmt.Errorf": + case "log.Print", "log.Printf", "log.Fatal", "log.Fatalf", "fmt.Error", "fmt.Errorf", "jp.Logf": return 0, false, true case "log.Logf": return 1, false, true |
