[systemd-devel] [PATCH 1/3] systemctl: check for triggering units before calling StopUnit

Zbigniew Jędrzejewski-Szmek zbyszek at in.waw.pl
Thu Sep 12 10:57:53 PDT 2013


On Wed, Sep 11, 2013 at 08:04:38PM +0200, Lennart Poettering wrote:
> On Fri, 09.08.13 16:00, Michal Sekletar (msekleta at redhat.com) wrote:
> 
> Heya,
> 
> Hmm, so what I don't really like about this patch is that the stop might
> have caused the triggering units also to go away via some deps. If we
> check the triggers before executing the operations we will never take
> that into account. (Note that so far the trigger message is delayed
> after the job succeeded in order to make sure we can take the full
> a-posteriori state into account).
> 
> So not sure, Zbigniew, do you have an opinion on this?
Yep, this would be the regression here.

Before the patch:
% sudo systemctl stop cups.service cups.socket
Warning: Stopping cups.service, but it can still be activated by:
  cups.path

After the patch:
% sudo build/systemctl stop cups.service cups.socket
Warning: Stopping cups.service, but it can still be activated by:
  cups.socket
  cups.path

I think that stopping rsyslog and other very busy sockets is
rather special, and current scheme works most of the time for what
is I think the common case. Maybe a better approach would be to
still print the warning when the job was cancelled.

Also, the "randomness" that the bug reporter didn't like is OK:
they are doing something inherently racy, and sometimes it goes
one way, sometimes the other.

Zbyszek

> (Also, Michal, what about the other patches from this series, are they
> still relevant? I amnot sure if you pulled them back or not, the thread
> confused me....)
> 
> Lennart


More information about the systemd-devel mailing list