fsateler at debian.org
Thu Apr 18 16:17:43 UTC 2019
On Thu, 18 Apr 2019 14:21:09 +0200, Josef Moellers wrote:
> We're currently working on a bug which afaict is due to a race
> 1) systemd starts xenstored.service
> 2) /etc/xen/scripts/launch-xenstore does its work (starts /usr/lib/xen/
> 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
> 7) systemd receives the UDP message, but
> a) the process is gone b) the PID is not in watch_pids 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 ?
More information about the systemd-devel