Skip to content

Consider only docker image pull system error as runner-system-failure

Romuald Atchadé requested to merge docker_pull_failure_as_script_failure into main

What does this MR do?

This MR helps considering docker pull image error as :

  • runner-system-failure when a docker system error
  • script-failure for other type of errors

Why was this MR needed?

Complete the work started in !2995 (merged)

What's the best way to test this MR?

.gitlab-ci.yml
job:
  script:
  - ls -l /builds

Test System Error

config.toml
concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "Local GitLab Runner for tests and debugging - Docker"
  url = "https://gitlab.com"
  token = "TOKEN_HERE"
  executor = "docker"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]
  [runners.docker]
    tls_verify = false
    image = "docker-registry.pombei.ro/alpine"
    privileged = false
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/cache"]
    shm_size = 0
Fails with system failure log

Log File

ERROR: Job failed (system failure): failed to pull image "docker-registry.pombei.ro/alpine" with specified policies [always]: Error response from daemon: Get https://docker-registry.pombei.ro/v2/: Service Unavailable (manager.go:205:0s)

Screen_Shot_2021-07-27_at_2.16.06_PM

Test Request Timeout

config.toml
concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "Local GitLab Runner for tests and debugging - Docker"
  url = "https://gitlab.com"
  token = "TOKEN_HERE"
  executor = "docker"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]
  [runners.docker]
    tls_verify = false
    image = "docker.repo.bogus.com.au/ben-docker:18.09.7-dind"
    privileged = false
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/cache"]
    shm_size = 0
Fails with failure log

Log File

ERROR: Job failed: failed to pull image "docker.repo.bogus.com.au/ben-docker:18.09.7-dind" with specified policies [always]: Error response from daemon: Get https://docker.repo.bogus.com.au/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) (manager.go:204:22s)

Screen_Shot_2021-07-28_at_4.14.59_PM

Test Non Found Image Error

config.toml
concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "Local GitLab Runner for tests and debugging - Docker"
  url = "https://gitlab.com"
  token = "TOKEN_HERE"
  executor = "docker"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]
  [runners.docker]
    tls_verify = false
    image = "dummyimage"
    privileged = false
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/cache"]
    shm_size = 0
Fails with failure log

Log File

ERROR: Job failed: failed to pull image "dummyimage" with specified policies [always]: Error response from daemon: pull access denied for dummyimage, repository does not exist or may require 'docker login': denied: requested access to the resource is denied (manager.go:205:0s)

Screen_Shot_2021-07-27_at_2.20.44_PM

What are the relevant issue numbers?

closes: #28075 (closed)

Edited by Romuald Atchadé

Merge request reports