aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/bisect/bisect.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/bisect/bisect.go')
-rw-r--r--pkg/bisect/bisect.go22
1 files changed, 17 insertions, 5 deletions
diff --git a/pkg/bisect/bisect.go b/pkg/bisect/bisect.go
index e8f85c47f..73a1971c8 100644
--- a/pkg/bisect/bisect.go
+++ b/pkg/bisect/bisect.go
@@ -1014,12 +1014,24 @@ func mostFrequentReports(reports []*report.Report) (*report.Report, []crash.Type
func (env *env) isTransientError(rep *report.Report) bool {
// If we're not chasing a SYZFATAL error, ignore them.
// Otherwise it indicates some transient problem of the tested kernel revision.
- hadSyzFailure := false
- for _, t := range env.reportTypes {
- hadSyzFailure = hadSyzFailure || t == crash.SyzFailure
+ if rep.Type == crash.SyzFailure {
+ hadSyzFailure := false
+ for _, t := range env.reportTypes {
+ hadSyzFailure = hadSyzFailure || t == crash.SyzFailure
+ }
+ return len(env.reportTypes) > 0 && !hadSyzFailure
+ }
+ // Lost connection is a frequent source of flaky results.
+ // Ignore if it is was not in the canonical crash types set.
+ if rep.Type == crash.LostConnection {
+ hadLostConnection := false
+ for _, t := range env.reportTypes {
+ hadLostConnection = hadLostConnection || t == crash.LostConnection
+ }
+ return len(env.reportTypes) > 0 && !hadLostConnection
}
- return rep.Type == crash.SyzFailure &&
- len(env.reportTypes) > 0 && !hadSyzFailure
+ // All other errors are okay.
+ return false
}
func (env *env) saveDebugFile(hash string, idx int, data []byte) {