aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/manager
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2024-10-22 17:38:04 +0200
committerAleksandr Nogikh <nogikh@google.com>2024-10-24 08:20:46 +0000
commitdc126d902e1764303841eb3db2f20a808c165bb2 (patch)
tree065ab811384c459740d1b48a9a1d86e2577ea66d /pkg/manager
parent15fa29791c1707abd7faed4110e284d0ccb72fae (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.go10
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
}