From cd5d5ef40fe9aa4e4dea8f3efa87e4477311cd7a Mon Sep 17 00:00:00 2001 From: charlie4284 Date: Wed, 8 Apr 2026 17:39:39 +0800 Subject: [PATCH 1/6] remove kill-mode process --- src/manager_service.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/manager_service.py b/src/manager_service.py index a5e2ddbd42..ace87d359a 100644 --- a/src/manager_service.py +++ b/src/manager_service.py @@ -393,7 +393,6 @@ def _setup_service_file(unit_name: str, config_file: Path, log_file: Path, log_l RestartSec=30 RestartSteps=5 RestartMaxDelaySec=600 - KillMode=process StandardOutput=append:{log_file} StandardError=append:{log_file} From a704ff1bce05fcba49125c06b1007b4501bdc204 Mon Sep 17 00:00:00 2001 From: charlie4284 Date: Fri, 10 Apr 2026 05:13:50 +0000 Subject: [PATCH 2/6] chore: update version to 0.18.1 and document removal of KillMode=process --- docs/changelog.md | 4 ++++ github-runner-manager/pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/changelog.md b/docs/changelog.md index 1ee0fdcef3..13ca6c3059 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -2,6 +2,10 @@ This changelog documents user-relevant changes to the GitHub runner charm. +## 2026-04-10 + +- Removed `KillMode=process` from the runner manager systemd service, restoring the default `control-group` kill mode. This ensures all child processes in the service's cgroup are properly terminated when the service stops, preventing orphaned runner processes. + ## 2026-04-03 - Fixed charm not entering blocked/waiting status when the image integration has no image available. Previously, some event handlers (`upgrade-charm`, `planner-relation-changed`, `planner-relation-broken`) would start the runner manager service without checking image readiness, causing the service to error with "No runner combinations configured." diff --git a/github-runner-manager/pyproject.toml b/github-runner-manager/pyproject.toml index b45e993d92..3899e8b5c0 100644 --- a/github-runner-manager/pyproject.toml +++ b/github-runner-manager/pyproject.toml @@ -3,7 +3,7 @@ [project] name = "github-runner-manager" -version = "0.18.0" +version = "0.18.1" authors = [ { name = "Canonical IS DevOps", email = "is-devops-team@canonical.com" }, ] From 8deb6adbd0340b6c574d1245636b5b75fc3001c1 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 10 Apr 2026 05:32:02 +0000 Subject: [PATCH 3/6] chore: add cgroup and systemd to vale vocabulary Agent-Logs-Url: https://github.com/canonical/github-runner-operator/sessions/fdb190f7-56fe-4911-94f8-16309a5fceb1 Co-authored-by: florentianayuwono <76247368+florentianayuwono@users.noreply.github.com> --- .vale/styles/config/vocabularies/local/accept.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.vale/styles/config/vocabularies/local/accept.txt b/.vale/styles/config/vocabularies/local/accept.txt index 3ae679c14e..98da372cf3 100644 --- a/.vale/styles/config/vocabularies/local/accept.txt +++ b/.vale/styles/config/vocabularies/local/accept.txt @@ -1,6 +1,7 @@ aproxy Aproxy backoff +cgroup denylist enqueued Gunicorn @@ -14,6 +15,7 @@ plaintext proxied reactively rollout +systemd Tmate unregisters untrusted From ce524a80c6a6bef028bb6532bcc00b01540eb8a3 Mon Sep 17 00:00:00 2001 From: charlie4284 Date: Tue, 14 Apr 2026 12:17:56 +0800 Subject: [PATCH 4/6] debug --- .github/workflows/integration_test.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/integration_test.yaml b/.github/workflows/integration_test.yaml index 51f6a69e5a..f39aa5617a 100644 --- a/.github/workflows/integration_test.yaml +++ b/.github/workflows/integration_test.yaml @@ -38,6 +38,8 @@ jobs: --dockerhub-mirror="${{ vars.INTEGRATION_TEST_DOCKERHUB_MIRROR }}" self-hosted-runner: true self-hosted-runner-label: pfe-ci + tmate-debug: true + tmate-timeout: 90 openstack-integration-tests-cross-controller-private-endpoint: name: Cross controller integration test using private-endpoint uses: canonical/operator-workflows/.github/workflows/integration_test.yaml@main From 8435b9aa4dc8b2d84a350101e20a44fb7b7b51d2 Mon Sep 17 00:00:00 2001 From: charlie4284 Date: Tue, 14 Apr 2026 12:18:14 +0800 Subject: [PATCH 5/6] chore: ignore macOS artifacts --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 0d09c15223..b034a371db 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,9 @@ venv/ .mypy_cache *.egg-info/ +# OS artifacts +.DS_Store + # BEGIN VALE WORKFLOW IGNORE .vale/styles/* !.vale/styles/local From d2201c26b1a69549ae9d455dd642044e28808d47 Mon Sep 17 00:00:00 2001 From: charlie4284 Date: Thu, 16 Apr 2026 06:37:25 +0000 Subject: [PATCH 6/6] ci: remove debug --- .github/workflows/integration_test.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/integration_test.yaml b/.github/workflows/integration_test.yaml index 42d5922ddc..1c6ad3eb2c 100644 --- a/.github/workflows/integration_test.yaml +++ b/.github/workflows/integration_test.yaml @@ -38,8 +38,6 @@ jobs: --dockerhub-mirror="${{ vars.INTEGRATION_TEST_DOCKERHUB_MIRROR }}" self-hosted-runner: true self-hosted-runner-label: pfe-ci - tmate-debug: true - tmate-timeout: 90 openstack-integration-tests-cross-controller-private-endpoint: name: Cross controller integration test using private-endpoint uses: canonical/operator-workflows/.github/workflows/integration_test.yaml@main