Bug#774335: systemd-sysv: NIS-based autofs mounts may not show up when using systemd

Michael Biebl biebl at debian.org
Thu Jan 1 02:40:07 GMT 2015


Am 01.01.2015 um 03:25 schrieb Michael Biebl:
> control: retitle -1 Provides: in SysV init scripts are not handled correctly, leading to wrong orderings
> control: severity -1 serious
> 
> Am 01.01.2015 um 03:08 schrieb Michael Biebl:
>> control: found -1 215-8
>>
>> Am 01.01.2015 um 02:39 schrieb Luke Diamand:
>>> sysv-generator seems to correctly generate an autofs.service file which has a
>>> dependency on NIS, specifically, ypbind:
>>>
>>> $ grep "After" autofs.service
>>> After=network-online.target remote-fs.target systemd-journald-dev-log.socket
>>> ypbind.service nslcd.service slapd.service
>>>
>>> But nothing in the nis.service file mentions ypbind, and so the dependency
>>> never gets setup, and the ordering isn't reliable.
>>
>> The /etc/init.d/nis SysV init script has the following LSB header:
>>
>>> ### BEGIN INIT INFO
>>> # Provides:             ypbind ypserv ypxfrd yppasswdd
>>> # Required-Start:       $network $portmap $remote_fs
>>> # Required-Stop:        $portmap $remote_fs
>>> # Default-Start:        2 3 4 5
>>> # Default-Stop:         1
>>> # Short-Description:    Start NIS client and server daemons.
>>> # Description:          Start NIS client and server daemons.  NIS is mostly 
>>> #                       used to let several machines in a network share the 
>>> #                       same account information (eg the password file).
>>> ### END INIT INFO
>>
>> It looks though, as the sysv-genenator does not properly handle
>> Provides, especially multiple names listed in Provides.
>>
>> # systemctl show nis.service | grep Names
>> Names=nis.service
>>
>> The additional Provides should be listed under Names.
> 
> That's the output under systemd v44
> 
> Names=nis.service ypserv.service ypxfrd.service yppasswdd.service
> 
> which looks correct.
> 
> The corresponding code in sysv-generator in v215 tries to map Provides: to 
> targets which are pulled in via Wants/Before. This doesn't look like the
> correct approach on a cursory glance.


The code in v215:
http://anonscm.debian.org/cgit/pkg-systemd/systemd.git/tree/src/sysv-generator/sysv-generator.c#n465

The code in v44:
http://anonscm.debian.org/cgit/pkg-systemd/systemd.git/tree/src/service.c?id=16f1239e1ece27257c0deedcf01aa39474f66241#n733

Note how v44 tries to map Provides to Names, if the unit type is a service:

> if (unit_name_to_type(m) == UNIT_SERVICE)
>     r = unit_add_name(u, m);


This code is completely missing in v215.

Not sure, why it was dropped.
I've CCed Thomas, who implemented the sysv-generator. Maybe he can shed
some light on this.


Michael
-- 
Why is it that all of the instruments seeking intelligent life in the
universe are pointed away from Earth?

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://alioth-lists.debian.net/pipermail/pkg-systemd-maintainers/attachments/20150101/698dc0d2/attachment-0002.sig>


More information about the Pkg-systemd-maintainers mailing list