rpcbind: LSB headers should provide $portmap virtual facility

Patrick Matthäi pmatthaei at debian.org
Fri Nov 21 13:49:32 GMT 2014


Hello systemd maintainers,

please CC me in your e-mails, I'm not subscribed to this list.

Am 20.11.2014 um 17:31 schrieb Simon McVittie:
> It seems to me as though your dependency cycle is caused by 
> vmware-tools.service. Please try removing the X-Start-Before from it 
> and see whether that helps. If further analysis of your dependency 
> cycle indicates that there is in fact some problem with 
> rpcbind.service, I think it would make most sense for that to be a 
> separate bug. 

Right, it is working without the X-Start-Before line.

>> Names=vmware-tools.service
> ...
>> Before=ntp.service postfix.service bacula-fd.service
>> nagios-nrpe-server.service bacula-director.service graphical.target
>> shutdown.target network-online.target bacula-sd.service
>> fail2ban.service sysstat.service multi-user.target
>> After=local-fs.target systemd-journald.socket basic.target
>> system.slice
> Because of the X-Start-Before: $network, this wants to start before
> network-online.target, which approximately corresponds to
> /etc/init.d/networking in sysv-land; yet it is a rc2 service, so it
> wants to start after basic.target.
>
> In conjunction with basic.target (i.e. rcS) services like
> rpcbind.service that apparently want to start *after*
> network-online.target, this presents a problem. Consider the Before and
> After ordering:
>
> sysinit.target (must start before)
> basic.target (which must start before)
> vmware-tools.service (etc.)
> network-online.target
> rpcbind.service
> sysinit.target (! back where we started)
>
> There's no way that can work well.
>
> The sysvinit scripts were presumably able to resolve this less
> destructively by breaking the cycle in a different place, because they
> didn't even think about rc2 until they had brought up rcS, by which
> point it was too late for vmware-tools' X-Start-Before to take effect;
> so it was simply ignored (I think). However, systemd doesn't force all
> of rcS to happen before any of rc2 starts: it has a single large
> dependency graph that covers both.
>
> I think it's fairly clear that this is neither rpcbind's fault, nor the
> same issue that I originally reported (which was wrong anyway).

ACK

>
> It would seem reasonable to report a non-RC bug against systemd
> (probably wishlist) for either or both of these:
>
> - logging the whole path around the cycle(s) that it found, not just
>    one of the units involved;
> - a cleverer heuristic for where to break cycles, perhaps preferring
>    to break them at a unit that has DefaultDependencies=no because those
>    are less likely to be something important during early boot
>
> It's entirely possible that one or both of those has been tried and
> turned out not to be feasible, though.
>
>      S
>
Thanks for your analyse of this problem. I think there should be a 
better solution, since this bug will be triggered on every VMware 
virtualized platform (since normaly you have to install their 
corresponding vmware-tools).

-- 
/*
Mit freundlichem Gruß / With kind regards,
  Patrick Matthäi
  GNU/Linux Debian Developer

   Blog: http://www.linux-dev.org/
E-Mail: pmatthaei at debian.org
         patrick at linux-dev.org
*/




More information about the Pkg-systemd-maintainers mailing list