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

Merge request reports

Loading