diff options
| author | Aleksandr Nogikh <nogikh@google.com> | 2024-10-22 17:38:04 +0200 |
|---|---|---|
| committer | Aleksandr Nogikh <nogikh@google.com> | 2024-10-24 08:20:46 +0000 |
| commit | dc126d902e1764303841eb3db2f20a808c165bb2 (patch) | |
| tree | 065ab811384c459740d1b48a9a1d86e2577ea66d /pkg/manager | |
| parent | 15fa29791c1707abd7faed4110e284d0ccb72fae (diff) | |
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.
Diffstat (limited to 'pkg/manager')
| -rw-r--r-- | pkg/manager/crash.go | 10 |
1 files changed, 9 insertions, 1 deletions
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 } |
