aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2019-03-12 14:12:05 +0100
committerDmitry Vyukov <dvyukov@google.com>2019-03-17 18:06:44 +0100
commit80765640f0a7bb91a4f7cccdeb566e84e76f56a1 (patch)
tree263f706b9d183a60c7aa88ff45c2aa87d90b7e90
parent8fb18735b798953466fe86baef870e94ef572940 (diff)
syz-ci: ignore job errors on shutdown
Ctrl+C can kill a child process which will cause an error. Ignore such errors, it's better to retry after restart then to report a false failure. Update #501
-rw-r--r--syz-ci/jobs.go13
-rw-r--r--syz-ci/syz-ci.go2
2 files changed, 13 insertions, 2 deletions
diff --git a/syz-ci/jobs.go b/syz-ci/jobs.go
index 8998ce0fd..41b99109a 100644
--- a/syz-ci/jobs.go
+++ b/syz-ci/jobs.go
@@ -31,18 +31,20 @@ type JobProcessor struct {
managers []*Manager
knownCommits map[string]bool
stop chan struct{}
+ shutdownPending chan struct{}
dash *dashapi.Dashboard
syzkallerRepo string
syzkallerBranch string
}
-func newJobProcessor(cfg *Config, managers []*Manager, stop chan struct{}) *JobProcessor {
+func newJobProcessor(cfg *Config, managers []*Manager, stop, shutdownPending chan struct{}) *JobProcessor {
jp := &JobProcessor{
cfg: cfg,
name: fmt.Sprintf("%v-job", cfg.Name),
managers: managers,
knownCommits: make(map[string]bool),
stop: stop,
+ shutdownPending: shutdownPending,
syzkallerRepo: cfg.SyzkallerRepo,
syzkallerBranch: cfg.SyzkallerBranch,
}
@@ -231,6 +233,15 @@ func (jp *JobProcessor) processJob(job *Job) {
resp := jp.process(job)
log.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")
+ return
+ }
+ default:
+ }
if err := jp.dash.JobDone(resp); err != nil {
jp.Errorf("failed to mark job as done: %v", err)
return
diff --git a/syz-ci/syz-ci.go b/syz-ci/syz-ci.go
index a762572de..b7d2c72c0 100644
--- a/syz-ci/syz-ci.go
+++ b/syz-ci/syz-ci.go
@@ -180,7 +180,7 @@ func main() {
}()
}
- jp := newJobProcessor(cfg, managers, stop)
+ jp := newJobProcessor(cfg, managers, stop, shutdownPending)
wg.Add(1)
go func() {
defer wg.Done()