https://github.com/systemd/systemd-stable/issues/302 https://github.com/systemd/systemd/pull/28000 From 5f7f82ba625ee48d662c1f0286f44b8b0918d05d Mon Sep 17 00:00:00 2001 From: msizanoen Date: Mon, 12 Jun 2023 10:30:12 +0700 Subject: [PATCH] Revert "core/service: when resetting PID also reset known flag" This reverts commit ff32060f2ed37b68dc26256b05e2e69013b0ecfe. This change is incorrect as we don't want to mark the PID as invalid but only mark it as dead. The change in question also breaks user level socket activation for `podman.service` as the termination of the main `podman system service` process is not properly handled, causing any application accessing the socket to hang. This is because the user-level `podman.service` unit also hosts two non-main processes: `rootlessport` and `rootlessport-child` which causes the `cgroup_good` check to still succeed. The original submitter of this commit is recommended to find another more correct way to fix the cgroupsv1 issue on CentOS 8. --- a/src/core/service.c +++ b/src/core/service.c @@ -3752,7 +3752,6 @@ static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) { return; s->main_pid = 0; - s->main_pid_known = false; exec_status_exit(&s->main_exec_status, &s->exec_context, pid, code, status); if (s->main_command) {