Sign in or sign up before continuing. Don't have an account yet? Register now to get started.
Regression runner v18.7.0 wrt services
## Summary
I got a regression issue with both Gitlab-runner version `18.7.0-1` and `18.7.1-1`.
But today I ran a gitlab CI/CD workflow that uses `services` (all other workflows are not causing issues).
But with `services` I'm getting:
```
*** WARNING: Service runner-vx8dp7gjm-project-192-concurrent-0-ab791c78715ffbde-mariadb-0 probably didn't start properly.
Health check error:
service "runner-vx8dp7gjm-project-192-concurrent-0-ab791c78715ffbde-mariadb-0-wait-for-service" timeout
```
Meaning the gitlab-runner is **unable** to connect to my `mariadb` service, which use to work fine:
```yaml
test:
stage: test
variables:
DOCKER_DRIVER: overlay2
MYSQL_ROOT_PASSWORD: 'secret'
MYSQL_DATABASE: 'secret'
MYSQL_USER: 'secret'
MYSQL_PASSWORD: 'secret'
TZ: 'Europe/Amsterdam'
services:
- mariadb
```
The MariaDB (mysql) docker image is running fine. Output is (this is good):
```sh
2025-12-24T23:08:32.205792399Z 2025-12-25 0:08:32 0 [Note] InnoDB: Buffer pool(s) load completed at 251225 0:08:32
2025-12-24T23:08:33.153427183Z 2025-12-25 0:08:33 0 [Note] Server socket created on IP: '0.0.0.0', port: '3306'.
2025-12-24T23:08:33.153445313Z 2025-12-25 0:08:33 0 [Note] Server socket created on IP: '::', port: '3306'.
2025-12-24T23:08:33.158397863Z 2025-12-25 0:08:33 0 [Note] mariadbd: Event Scheduler: Loaded 0 events
2025-12-24T23:08:33.159184238Z 2025-12-25 0:08:33 0 [Note] mariadbd: ready for connections.
```
However, the internal communication is NO longer working between the two docker containers started by the GitLab Runner. So my CI/CD pipeline is failing.
So I **downgraded** to gitlab-runner version: `18.6.6-1`. And this works again, meaning something in 18.7.x is broken!!
ps. I'm using Docker version 29.1.3, build f52814d and running on Ubuntu Server 24.04. And running GitLab v18.7.0.
## Steps to reproduce
<details>
<summary> .gitlab-ci.yml </summary>
```yml
test:
stage: test
variables:
DOCKER_DRIVER: overlay2
MYSQL_ROOT_PASSWORD: 'secret'
MYSQL_DATABASE: 'secret'
MYSQL_USER: 'secret'
MYSQL_PASSWORD: 'secret'
TZ: 'Europe/Amsterdam'
services:
- mariadb
```
</details>
## Actual behavior
```sh
*** WARNING: Service runner-vx8dp7gjm-project-192-concurrent-0-ab791c78715ffbde-mariadb-0 probably didn't start properly.
Health check error:
service "runner-vx8dp7gjm-project-192-concurrent-0-ab791c78715ffbde-mariadb-0-wait-for-service" timeout
```
## Expected behavior
Well no errors or issues with health checks and failing pipelines..
```sh
Using Docker executor with image registry.melroy.org/melroy/docker-images/pnpm:24 ...
Starting service mariadb:latest...
Using effective pull policy of [always] for container mariadb:latest
Pulling docker image mariadb:latest ...
Using docker image sha256:f90bc2981a9328d1cf99f733a5c355a5cc869d78f10eea1932cf99d80328ff86 for mariadb:latest with digest mariadb@sha256:e1bcd6f85781f4a875abefb11c4166c1d79e4237c23de597bf0df81fec225b40 ...
Waiting for services to be up and running (timeout 30 seconds)...
Using effective pull policy of [always] for container registry.melroy.org/melroy/docker-images/pnpm:24
Authenticating with credentials from job payload (GitLab Registry)
Pulling docker image registry.melroy.org/melroy/docker-images/pnpm:24 ...
Using docker image sha256:7075474821d05f5bc2d30ceed26663b3d50fe8a1e2083cab529f2a07ece0c01a for registry.melroy.org/melroy/docker-images/pnpm:24 with digest registry-1.docker.io/danger89/pnpm@sha256:6f275adb6cd28a2ab01316c19da12c40921e6451d425f206db6c9b9eac058247 ...
Preparing environment 00:00
Using effective pull policy of [always] for container sha256:a94f7cb84038b6d0510ca7b38d8e4ac6f38863e764ab1a10e70860dff6ab24bd
Running on runner-vx8dp7gjm-project-192-concurrent-0 via ubuntu-server...
Getting source from Git repository 00:06
Gitaly correlation ID: 01KD9BE1EA6QA8QT5NFKSF1DMF
Fetching changes with git depth set to 20...
Reinitialized existing Git repository in /builds/erpjs/erpjs/.git/
Created fresh repository.
Checking out 6d7645da as detached HEAD (ref is upgrade_rgs_3_8)...
```
## Relevant logs and/or screenshots
See my summary above.
## Environment description
My Docker `daemon.json`:
```json
{
"experimental": false,
"icc": false,
"userns-remap": "default",
"storage-driver": "overlay2",
"userland-proxy": false,
"live-restore": false,
"no-new-privileges": true,
"dns": ["8.8.8.8", "8.8.4.4"],
"ipv6": false,
"ip6tables": false,
"fixed-cidr-v6": "2a02:22a0:bbba:f900::/64",
"registry-mirrors": ["http://127.0.0.1:6000"],
"insecure-registries": ["127.0.0.1:6000"],
"data-root": "/media/data_extra/docker",
"bip": "10.254.1.1/24",
"default-address-pools":[
{"base":"10.254.0.0/16","size":25}
]
}
```
`docker info`:
```
Client: Docker Engine - Community
Version: 29.1.3
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.30.1
Path: /usr/libexec/docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
Version: v5.0.0
Path: /usr/libexec/docker/cli-plugins/docker-compose
Server:
Containers: 44
Running: 44
Paused: 0
Stopped: 0
Images: 150
Server Version: 29.1.3
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Using metacopy: false
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: systemd
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
CDI spec directories:
/etc/cdi
/var/run/cdi
Swarm: inactive
Runtimes: io.containerd.runc.v2 runc
Default Runtime: runc
Init Binary: docker-init
containerd version: dea7da592f5d1d2b7755e3a161be07f43fad8f75
runc version: v1.3.4-0-gd6d73eb8
init version: de40ad0
Security Options:
apparmor
seccomp
Profile: builtin
userns
cgroupns
no-new-privileges
Kernel Version: 6.8.0-90-generic
Operating System: Ubuntu 24.04.3 LTS
OSType: linux
Architecture: x86_64
CPUs: 22
Total Memory: 63.78GiB
Name: ubuntu-server
ID: ee401697-a44c-4d20-9937-a254b0d09618
Docker Root Dir: /media/data_extra/docker/231072.231072
Debug Mode: false
Username: danger89
Experimental: false
Insecure Registries:
127.0.0.1:6000
::1/128
127.0.0.0/8
Registry Mirrors:
http://127.0.0.1:6000/
Live Restore Enabled: false
Default Address Pools:
Base: 10.254.0.0/16, Size: 25
Firewall Backend: iptables
```
<details>
<summary> config.toml contents </summary>
```toml
concurrent = 5
check_interval = 60
connection_max_age = "15m0s"
shutdown_timeout = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "Default Docker runner"
url = "secret"
id = 42
token = "secret"
token_obtained_at = 2023-03-29T21:32:49Z
token_expires_at = 0001-01-01T00:00:00Z
wait_for_services_timeout=110
request_concurrency=2
executor = "docker"
environment = ["DOCKER_DRIVER=overlay2"]
[runners.docker]
tls_verify = false
image = "alpine:3.17"
privileged = false
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache"]
shm_size = 0
network_mtu = 0
```
</details>
### Used GitLab Runner version
Like I said I now use version 18.6.6 again, but version 18.7.0 and higher are broken wrt services for me!
## Possible fixes
I don't know the root cause. But 99% sure the bug is in [18.7.0](https://gitlab.com/gitlab-org/gitlab-runner/blob/v18.7.0/CHANGELOG.md). And I'm 80% sure its a regression is of MR: https://gitlab.com/gitlab-org/gitlab-runner/-/merge_requests/5980 most likely.
**Workaround:** Going back to version 18.6.6...
issue