fix: disable systemd-oomd memory pressure kill for runner users
The default systemd user service configuration (10-oomd-user-service-defaults.conf) sets ManagedOOMMemoryPressure=kill with ManagedOOMMemoryPressureLimit=50%. Under parallel DinD load (6 molecule tests), memory pressure exceeds 50% for 30 seconds, causing systemd-oomd to SIGKILL molecule containers (rc=137). This was the root cause of recurring "container is not running" and "Failed to create temporary directory" errors in CI. Fix: Create a per-user systemd override that sets: - ManagedOOMMemoryPressure=auto (don't kill on pressure) - ManagedOOMMemoryPressureLimit=100% (never trigger) - OOMScoreAdjust=-500 (very unlikely to be OOM-killed) The runner users run Docker-in-Docker workloads that legitimately use large amounts of memory. systemd-oomd's aggressive memory pressure killing is inappropriate for CI runner workloads. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
co-authored by
Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
parent
645d87a3cf
commit
cea84b1d89
@@ -10,3 +10,7 @@
|
||||
- ansible_facts is defined
|
||||
- ansible_facts['service_mgr'] | default('') == 'systemd'
|
||||
- gitea_runner_docker_rootless_setup
|
||||
|
||||
- name: Reload systemd user daemon
|
||||
ansible.builtin.systemd:
|
||||
daemon_reload: true
|
||||
|
||||
@@ -69,3 +69,31 @@
|
||||
owner: "{{ gitea_runner_service_user }}"
|
||||
group: "{{ gitea_runner_service_user }}"
|
||||
mode: "0755"
|
||||
|
||||
- name: Disable systemd-oomd memory pressure kill for runner user
|
||||
when: gitea_runner_systemd_available.stat.exists
|
||||
block:
|
||||
- name: Ensure user service override directory exists
|
||||
ansible.builtin.file:
|
||||
path: "/etc/systemd/system/user@{{ gitea_runner_uid }}.service.d"
|
||||
state: directory
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0755"
|
||||
|
||||
- name: Disable ManagedOOMMemoryPressure for runner user
|
||||
ansible.builtin.copy:
|
||||
content: |
|
||||
[Service]
|
||||
ManagedOOMMemoryPressure=auto
|
||||
ManagedOOMMemoryPressureLimit=100%
|
||||
OOMScoreAdjust=-500
|
||||
dest: "/etc/systemd/system/user@{{ gitea_runner_uid }}.service.d/oomd-override.conf"
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
notify: Reload systemd user daemon
|
||||
|
||||
- name: Reload systemd daemon for oomd override
|
||||
ansible.builtin.systemd:
|
||||
daemon_reload: true
|
||||
|
||||
Reference in New Issue
Block a user