diff options
| author | Aleksandr Nogikh <nogikh@google.com> | 2024-12-02 16:28:50 +0100 |
|---|---|---|
| committer | Aleksandr Nogikh <nogikh@google.com> | 2024-12-03 09:29:37 +0000 |
| commit | db79ee42aa4ce246143fd292e083ad85441de20d (patch) | |
| tree | 8ef94927e33c3d38aeed15e876375e6d2b476a64 /pkg/bisect/bisect.go | |
| parent | 0706496528cdecd6a01ca847e3deb0a223c425d8 (diff) | |
pkg/bisect: ignore irrelevant lost connection crashes
These have been the cause of too many invalid bisection results
recently.
This is the first step towards the more universal approach of #5414.
Diffstat (limited to 'pkg/bisect/bisect.go')
| -rw-r--r-- | pkg/bisect/bisect.go | 22 |
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) { |
