ae83e97 core/service: when resetting PID also reset known flag

1 file Authored by msekleta 2 years ago, Committed by zbyszek 2 years ago,
    core/service: when resetting PID also reset known flag
    
    Re-watching pids on cgroup v1 (needed because of unreliability of cgroup
    empty notifications in containers) is handled bellow at the end of
    service_sigchld_event() and depends on value main_pid_known flag.
    
    In CentOS Stream 8 container on cgroup v1 the stop action would get stuck
    indefinitely on unit like this,
    
    $ cat /run/systemd/system/foo.service
    [Service]
    ExecStart=/bin/bash -c 'trap "nohup sleep 1 & exit 0" TERM;  sleep infinity'
    ExecStop=/bin/bash -c 'kill -s TERM $MAINPID'
    TimeoutSec=0
    
    However, upstream works "fine" because in upstream version of systemd we
    actually never wait on processes killed in containers and proceed
    immediately to sending SIGKILL hence re-watching of pids in the cgroup
    is not necessary. But for the sake of correctness we should merge the
    patch also upstream.
    
    (cherry picked from commit ff32060f2ed37b68dc26256b05e2e69013b0ecfe)
    
        
file modified
+1 -0