Skip to content

Job logs are shown also as service logs

Summary

With k8s executor, when a job and a service for that job share the exact same image name, the jobs logs are duplicated as service logs when CI_DEBUG_SERVICES is true.

Steps to reproduce

See example .gitlab-ci.yml below.

.gitlab-ci.yml
variables:
  CI_DEBUG_SERVICES: "true"

job-with-service:
  image: alpine:3
  services:
    - name: alpine:3
      alias: my-service
      command: ["sh", "-c", "echo 'Service starting...'; sleep 10; echo 'Some service logs here...'"]
  script:
    - echo "Logs coming from the job"
    - sleep 5
    - echo "Let's generate some more logs"
    - sleep 10
    - echo "And even more logs"

Actual behavior

Job logs are shown as regular and service logs.

Expected behavior

Job logs not shown as service logs.

Relevant logs and/or screenshots

job log
[service:alpine-my-service] 2025-09-24T11:54:29.314541596Z Service starting...
...
[service:alpine-my-service] 2025-09-24T11:54:32.821518494Z {"script": "/scripts-2506-6276074/step_script"}
[service:alpine-my-service] 2025-09-24T11:54:32.830886394Z $ echo "Logs coming from the job"
[service:alpine-my-service] 2025-09-24T11:54:32.830946774Z Logs coming from the job
[service:alpine-my-service] 2025-09-24T11:54:32.830979474Z $ sleep 5
$ echo "Logs coming from the job"
Logs coming from the job
$ sleep 5
[service:alpine-my-service] 2025-09-24T11:54:37.831775220Z $ echo "Let's generate some more logs"
[service:alpine-my-service] 2025-09-24T11:54:37.831858450Z Let's generate some more logs
[service:alpine-my-service] 2025-09-24T11:54:37.831870020Z $ sleep 10
$ echo "Let's generate some more logs"
Let's generate some more logs
$ sleep 10
[service:alpine-my-service] 2025-09-24T11:54:39.315773959Z Some service logs here...
[service:alpine-my-service] 2025-09-24T11:54:47.833285263Z $ echo "And even more logs"
[service:alpine-my-service] 2025-09-24T11:54:47.833361523Z And even more logs
[service:alpine-my-service] 2025-09-24T11:54:47.833684273Z 
[service:alpine-my-service] 2025-09-24T11:54:47.833746933Z {"command_exit_code": 0, "script": "/scripts-2506-6276074/step_script"}
$ echo "And even more logs"
And even more logs

Environment description

Self-managed runners using the Kubernetes executor on self-managed Gitlab instance.

config.toml contents
Add your configuration here

Used GitLab Runner version

Possible fixes

Possibly this line is where the job logs are allowed to flow into the service logs.

Edited by Markus Kaihola