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")
}