[PKG-OpenRC-Debian] Bug#874790: /lib/rc/bin/lsb2rcconf: Boot dependency does not work for nfs-common

Palo M. palo.gm at gmail.com
Sat Sep 9 15:48:20 UTC 2017


Package: openrc
Version: 0.23-1+b1
Severity: normal
File: /lib/rc/bin/lsb2rcconf

Dear Maintainer,

After switching to openrc, the daemons of package nfs-common (statd, idmapd,
gssd) do not start, because they depend on rpcbind (which is not started by
openrc before nfs-common).

When looking into source of lsb2rcconf I have found that it reads only file
/etc/insserv.conf to solve dependencies of legacy rc scripts.
However, the package rpcbind (which provides portmap service) installs its
info into /etc/insserv.conf.d/rpcbind (and with sysv-rc also files in
/etc/insserv.conf.d/ are read together with /etc/insserv.conf so it starts
as intended when sysv-rc is used).
So most likely lsb2rcconf should also read the files in /etc/insserv.conf.d/
to be able to solve all the dependencies. (Some other packages add their
files into /etc/insserv.conf.d/ too, for example dnsmasq or maradns.)

I tried the small workaround: I added content of /etc/insserv.conf.d/rpcbind
to the end of /etc/insserv.conf. Afterwards the rpcbind is indeed started
before nfs-common and all works fine.

Attached below are the files default_rc.log and default_checks.txt showing
the situation in default case (without workaround).
The files workaround_rc.log and workaround_checks.txt below show the
situation after workaround is applied.


Kind regards,
Palo M.


*** default_rc.log
rc sysinit logging started at Sat Sep  9 16:31:18 2017


   OpenRC 0.23 is starting up Linux 4.9.0-3-amd64 (x86_64)

 * /proc is already mounted
 * /run/openrc: creating directory
 * /run/lock: creating directory
 * /run/lock: correcting owner
 * Caching service dependencies ...
 [ ok ]
[....] Starting the hotplug events dispatcher: systemd-udevdstarting version 232
[ ok .
[....] Synthesizing the initial hotplug events...[ ok done.
[....] Waiting for /dev to be fully populated...[ ok done.
[....] Setting up keyboard layout...[ ok done.
[....] Activating swap...[ ok done.
[....] Activating lvm and md swap...[ ok done.
[....] Checking file systems...fsck from util-linux 2.29.2
[ ok done.
[....] Cleaning up temporary files... /tmp[ ok .
[....] Mounting local filesystems...[ ok done.
[....] Activating swapfile swap...[ ok done.
[....] Cleaning up temporary files...[ ok .
[....] Setting kernel variables...[ ok done.
[....] Configuring network interfaces...ifup: interface eth0 already configured
[ ok done.
[....] Starting NFS common utilities: statd
[....] Not starting: portmapper is not running ...[warn (warning).
[....] Cleaning up temporary files...[ ok .
[....] Starting RPC port mapper daemon: rpcbind[ ok .

rc sysinit logging stopped at Sat Sep  9 16:31:18 2017


rc default logging started at Sat Sep  9 16:31:18 2017

[....] Setting up console font and keymap...[ ok done.
[....] Starting enhanced syslogd: rsyslogd[ ok .
[....] Starting periodic command scheduler: cron[ ok .
[....] Starting system message bus: dbus[ ok .

rc default logging stopped at Sat Sep  9 16:31:18 2017


*** default_checks.txt
# rpcinfo -p
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
# ps -ef | grep 'rpc\.'
# /lib/rc/bin/lsb2rcconf /etc/init.d/rpcbind
description="RPC portmapper replacement"

depend () {
        provide _all
        use networking ifupdown mountall mountall-bootclean mountoverflowtmp
umountfs
}
# /lib/rc/bin/lsb2rcconf /etc/init.d/nfs-common
description="NFS support files common to client and server"

depend () {
        provide _all
        use hwclock
}

*** workaround.sh
#!/bin/sh
#

echo "\n# rpcbind workaround for openrc" >> /etc/insserv.conf
cat /etc/insserv.conf.d/rpcbind >> /etc/insserv.conf


*** workaround_rc.log
rc sysinit logging started at Sat Sep  9 16:35:36 2017


   OpenRC 0.23 is starting up Linux 4.9.0-3-amd64 (x86_64)

 * /proc is already mounted
 * /run/openrc: creating directory
 * /run/lock: creating directory
 * /run/lock: correcting owner
 * Caching service dependencies ...
 [ ok ]
[....] Starting the hotplug events dispatcher: systemd-udevdstarting version 232
[ ok .
[....] Synthesizing the initial hotplug events...[ ok done.
[....] Waiting for /dev to be fully populated...[ ok done.
[....] Setting up keyboard layout...[ ok done.
[....] Activating swap...[ ok done.
[....] Activating lvm and md swap...[ ok done.
[....] Checking file systems...fsck from util-linux 2.29.2
[ ok done.
[....] Cleaning up temporary files... /tmp[ ok .
[....] Mounting local filesystems...[ ok done.
[....] Activating swapfile swap...[ ok done.
[....] Cleaning up temporary files...[ ok .
[....] Setting kernel variables...[ ok done.
[....] Configuring network interfaces...ifup: interface eth0 already configured
[ ok done.
[....] Starting RPC port mapper daemon: rpcbind[ ok .
[....] Starting NFS common utilities: statd idmapd gssd[ ok .
[....] Cleaning up temporary files...[ ok .

rc sysinit logging stopped at Sat Sep  9 16:35:36 2017


rc default logging started at Sat Sep  9 16:35:36 2017

[....] Setting up console font and keymap...[ ok done.
[....] Starting enhanced syslogd: rsyslogd[ ok .
[....] Starting periodic command scheduler: cron[ ok .
[....] Starting system message bus: dbus[ ok .

rc default logging stopped at Sat Sep  9 16:35:36 2017


*** workaround_checks.txt
# rpcinfo -p
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  49743  status
    100024    1   tcp  47091  status
# ps -ef | grep 'rpc\.'
statd     4882     1  0 16:35 ?        00:00:00 /sbin/rpc.statd
root      4905     1  0 16:35 ?        00:00:00 /usr/sbin/rpc.idmapd
root      4910     1  0 16:35 ?        00:00:00 /usr/sbin/rpc.gssd
# /lib/rc/bin/lsb2rcconf /etc/init.d/rpcbind
description="RPC portmapper replacement"

depend () {
        provide _all
        use networking ifupdown mountall mountall-bootclean mountoverflowtmp
umountfs
}
# /lib/rc/bin/lsb2rcconf /etc/init.d/nfs-common
description="NFS support files common to client and server"

depend () {
        provide _all
        use hwclock
        need rpcbind
}


-- System Information:
Debian Release: 9.1
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.9.0-3-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_NZ.UTF-8, LC_CTYPE=en_NZ.UTF-8 (charmap=UTF-8),
LANGUAGE=en_NZ:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)

Versions of packages openrc depends on:
ii  init-system-helpers  1.48
ii  insserv              1.14.0-5.4+b1
ii  libaudit1            1:2.6.7-2
ii  libc6                2.24-11+deb9u1
ii  libeinfo1            0.23-1+b1
ii  libpam0g             1.1.8-3.6
ii  librc1               0.23-1+b1
ii  libselinux1          2.6-3+b1

openrc recommends no packages.

Versions of packages openrc suggests:
pn  policycoreutils  <none>
ii  sysvinit-core    2.88dsf-59.9

-- Configuration Files:
/etc/rc.conf changed:
rc_logger="yes"
rc_loopsolver_enable="YES"
rc_loopsolver_warnings="YES"
rc_tty_number=12


-- no debconf information



More information about the OpenRC-devel mailing list