Skip to content

docker-windows executor hangs with host-bound volumes

Summary

While experimenting with using the new docker-windows executor, I found that anytime I added host-bound volume, the runner would hang.

Steps to reproduce

  • Configure a docker-windows runner with a host-bound volume
  • Run CI/CD job on said runner
.gitlab-ci.yml
dir:
  stage: test
  script:
    - dir

Actual behavior

  • job hangs

  • runner doesn't pick up other jobs even after timeout

Expected behavior

  • runner/job doesn't hang
  • an error should be displayed on either the job or the runner if not supported

Relevant logs and/or screenshots

job log
Running with gitlab-runner 11.11.0 (6c154264)
  on mygitlabrunner xxxxxxxx


***

Environment description

Corporate GitLab Enterprise Edition 11.5.3-ee installation.

`docker info` contents
C:\>docker info
Containers: 9
 Running: 2
 Paused: 0
 Stopped: 7
Images: 65
Server Version: 18.09.2
Storage Driver: windowsfilter
 Windows:
Logging Driver: json-file
Plugins:
 Volume: local
 Network: ics l2bridge l2tunnel nat null overlay transparent
 Log: awslogs etwlogs fluentd gelf json-file local logentries splunk syslog
Swarm: inactive
Default Isolation: process
Kernel Version: 10.0 17763 (17763.1.amd64fre.rs5_release.180914-1434)
Operating System: Windows 10 Enterprise Version 1809 (OS Build 17763.195)
OSType: windows
Architecture: x86_64
CPUs: 16
Total Memory: 63.68GiB
Name: xxxxxx
ID: MI6N:H27P:SCWQ:U76G:G57X:5ZJI:W2DI:HBVH:T3JP:HUNA:VJ72:5E64
Docker Root Dir: C:\ProgramData\Docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: -1
 Goroutines: 56
 System Time: 2019-05-23T09:53:37.5939536-07:00
 EventsListeners: 1
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine
config.toml contents
concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "mygitlabrunner"
  url = "https://gitlab.xxx/"
  token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  executor = "docker-windows"
  [runners.docker]
    disable_cache = false
    disable_entrypoint_overwrite = false
    image = "mcr.microsoft.com/windows/servercore:1809"
    oom_kill_disable = false
    privileged = false
    shm_size = 0
    tls_verify = false
    volumes = ["c:\\cache", "c:\\source:c:\\destination"]
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]

Used GitLab Runner version

C:\>gitlab-runner --version
Version:      11.11.0
Git revision: 6c154264
Git branch:   11-11-stable
GO version:   go1.8.7
Built:        2019-05-20T20:19:50+0000
OS/Arch:      windows/amd64
Edited by R. Andrew Ohana