Wrap plain errors in image-pull paths with BuildError
What does this MR do?
Wrap plain errors in image-pull paths with BuildError
Plain errors returned from these paths fell through Build.setTraceStatus to the default runner_system_failure, inflating the infra-attributable error rate SLI with failures that are not actually infra faults.
- Docker pull manager: classify ImageInspectWithRaw failures after a successful pull with ClassifyImagePullFailure, and detect context cancellation in both the pull and post-pull-inspect paths so canceled or timed-out jobs are reported as JobCanceled / JobExecutionTimeout instead of being misclassified as pull failures.
- Kubernetes executor: wrap prepareHelperImage failures as ConfigurationError. The only possible errors from that path are unsupported OSType and unsupported Windows kernel version, both of which are config-shaped.
Why was this MR needed?
To fix incorrect assignments of failure reasons.
What's the best way to test this MR?
What are the relevant issue numbers?
Edited by Taka Nishida