internal/worker: classify 137 errors as sandbox related issues Change-Id: I202d55775c0a09acda4be7fbb6dd8551bb077708 Reviewed-on: https://go-review.googlesource.com/c/pkgsite-metrics/+/552715 Run-TryBot: Zvonimir Pavlinovic <zpavlinovic@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Jonathan Amsterdam <jba@google.com>
diff --git a/internal/derrors/derrors.go b/internal/derrors/derrors.go index 3aec2fa..15b49a2 100644 --- a/internal/derrors/derrors.go +++ b/internal/derrors/derrors.go
@@ -109,6 +109,9 @@ // due to an issue in the analysis. ScanSyntheticModuleError = errors.New("scan synthetic module error") + // ScanModuleSandboxError is used to capture general sandbox related issues. + ScanModuleSandboxError = errors.New("sandbox related issue") + // ScanModuleMemoryLimitExceeded occurs when scanning uses too much memory. ScanModuleMemoryLimitExceeded = errors.New("scan module memory limit exceeded") @@ -223,6 +226,8 @@ return "MEM LIMIT EXCEEDED" case errors.Is(err, ScanModuleTooManyOpenFiles): return "TOO MANY OPEN FILES" + case errors.Is(err, ScanModuleSandboxError): + return "SANDBOX MISC" case errors.Is(err, ProxyError): return "PROXY" case errors.Is(err, BigQueryError):
diff --git a/internal/worker/analysis.go b/internal/worker/analysis.go index b127beb..41863f6 100644 --- a/internal/worker/analysis.go +++ b/internal/worker/analysis.go
@@ -226,8 +226,8 @@ err = fmt.Errorf("%v: %w", err, derrors.LoadVendorError) case isProxyCacheMiss(err): err = fmt.Errorf("%v: %w", err, derrors.ProxyError) - case isMemoryIssue(err): - err = fmt.Errorf("%v: %w", err, derrors.ScanModuleMemoryLimitExceeded) + case isSandboxRelatedIssue(err): + err = fmt.Errorf("%v: %w", err, derrors.ScanModuleSandboxError) case isBuildIssue(err): err = fmt.Errorf("%v: %w", err, derrors.LoadPackagesError) case !hasGoMod:
diff --git a/internal/worker/govulncheck_scan.go b/internal/worker/govulncheck_scan.go index 2f41a17..9824151 100644 --- a/internal/worker/govulncheck_scan.go +++ b/internal/worker/govulncheck_scan.go
@@ -368,8 +368,8 @@ err = fmt.Errorf("%v: %w", err, derrors.ScanModuleTooManyOpenFiles) case isProxyCacheMiss(err): err = fmt.Errorf("%v: %w", err, derrors.ProxyError) - case isMemoryIssue(err): - err = fmt.Errorf("%v: %w", err, derrors.ScanModuleMemoryLimitExceeded) + case isSandboxRelatedIssue(err): + err = fmt.Errorf("%v: %w", err, derrors.ScanModuleSandboxError) default: err = fmt.Errorf("%v: %w", err, derrors.ScanModuleGovulncheckError) }
diff --git a/internal/worker/scan.go b/internal/worker/scan.go index 9c4ba0e..1c50455 100644 --- a/internal/worker/scan.go +++ b/internal/worker/scan.go
@@ -368,6 +368,7 @@ strings.Contains(errStr, "relative import paths are not supported in module mode") } -func isMemoryIssue(err error) bool { - return strings.Contains(err.Error(), "status 137") +func isSandboxRelatedIssue(err error) bool { + e := err.Error() + return strings.Contains(e, "runner") && strings.Contains(e, "status 137") }