From dc126d902e1764303841eb3db2f20a808c165bb2 Mon Sep 17 00:00:00 2001 From: Aleksandr Nogikh Date: Tue, 22 Oct 2024 17:38:04 +0200 Subject: pkg/manager: tolerate more bug list querying errors We do not save atomically, so it may happen that there will be some inconsistencies. Just skip those crashes and print a log message. --- pkg/manager/crash.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'pkg/manager') diff --git a/pkg/manager/crash.go b/pkg/manager/crash.go index 938c0b834..5edc9f5a9 100644 --- a/pkg/manager/crash.go +++ b/pkg/manager/crash.go @@ -14,6 +14,7 @@ import ( "time" "github.com/google/syzkaller/pkg/hash" + "github.com/google/syzkaller/pkg/log" "github.com/google/syzkaller/pkg/mgrconfig" "github.com/google/syzkaller/pkg/osutil" "github.com/google/syzkaller/prog" @@ -285,16 +286,23 @@ func (cs *CrashStore) BugList() ([]*BugInfo, error) { return nil, err } var ret []*BugInfo + var lastErr error + errCount := 0 for _, dir := range dirs { info, err := cs.BugInfo(dir, false) if err != nil { - return nil, fmt.Errorf("failed to process crashes/%s: %w", dir, err) + errCount++ + lastErr = err + continue } ret = append(ret, info) } sort.Slice(ret, func(i, j int) bool { return strings.ToLower(ret[i].Title) < strings.ToLower(ret[j].Title) }) + if lastErr != nil { + log.Logf(0, "some stored crashes are inconsistent: %d skipped, last error %v", errCount, lastErr) + } return ret, nil } -- cgit mrf-deployment