[systemd-devel] systemd-notify

Felipe Sateler fsateler at debian.org
Thu Apr 18 16:17:43 UTC 2019


On Thu, 18 Apr 2019 14:21:09 +0200, Josef Moellers wrote:

> Hi,
> 
> We're currently working on a bug which afaict is due to a race
> condition:
> 
> 1) systemd starts xenstored.service 
> 2) /etc/xen/scripts/launch-xenstore does its work (starts /usr/lib/xen/
> bin/init-xenstore-domain)
> 3) /etc/xen/scripts/launch-xenstore runs "systemd-notify --ready"
> 4) "systemd-notify --ready" sends a UDP-message to systemd 5)
> /etc/xen/scripts/launch-xenstore exits 6) systemd gets SIGCHLD and
> removes the PID from watch_pids[12]
> 7) systemd receives the UDP message, but
>    a) the process is gone b) the PID is not in watch_pids[12] any more.
> 8) "Cannot find unit for notify message of PID..."
> 9) No start of depending units.
> 
> I see no proper way to get out of this but to make the systemd-notify
> synchronous rather than fire-and-forget and expect it to wait for a
> response from systemd.

If the launch-xenstore script starts a daemon and then exists: why not 
make the unit Type=forking and thus forget about systemd-notify --ready ?


-- 
Saludos,
Felipe Sateler



More information about the systemd-devel mailing list