[systemd-devel] systemd-notify --ready is not reliable

Lennart Poettering lennart at poettering.net
Wed Apr 23 11:50:34 PDT 2014


On Wed, 23.04.14 15:15, Eelco Dolstra (eelco.dolstra at logicblox.com) wrote:

> Hi all,
> 
> I've noticed that the command "systemd-notify --ready" does not work reliably to
> signal that a service is ready. It works sometimes, but most of the time you get
> a message like:
> 
>   systemd[1]: Cannot find unit for notify message of PID 3137.
> 
> in the journal, and the service stays in the "activating" state.
> 
> The reason is that systemd-notify sends its message asynchronously and exits
> immediately. So by the time systemd processes the message, systemd-notify has
> probably already exited, and so systemd cannot gets cgroup. (Note that this
> affects other systemd-notify messages as well, but for --ready it's particularly
> bad because it causes services to "hang" in the "activating" state.)
> 
> Any suggestions what to do about this? I can see a few solutions:

There is ongoing work to fix the kernel to add SCM_CGROUPS for us to
messages. With that in place we have a race-free way to get this data
for incoming messages. I have some hopes that this will soonishly enter
the kernel, but then again, this story has been cookie for the past 5
years to no successs...

Lennart

-- 
Lennart Poettering, Red Hat


More information about the systemd-devel mailing list