Bug#848861: invoke-rc.d: Tries to start disabled systemd service if there are SysVinit init scripts

Andreas Henriksson andreas at fatal.se
Tue Dec 20 10:21:53 GMT 2016


Control: reassign -1 ipmiutil 3.0.0-2
Control: severity -1 serious

Hello Artur Molchanov,

Thanks for your bug report.

On Tue, Dec 20, 2016 at 12:48:25PM +0300, Artur Molchanov wrote:
> Package: init-system-helpers
> Version: 1.46
> Severity: important
> 
> Dear Maintainer,
> 
> invoke-rc.d from init-system-helpers 1.46 starts a systemd service (e.g. ipmi_port.service) if it is not enabled but there are init.d
> scripts with the same name (e.g. /etc/rc2.d/S01ipmi_port /etc/rc3.d/S01ipmi_port /etc/rc4.d/S01ipmi_port /etc/rc5.d/S01ipmi_port).
> 
> It causes inability to install ipmiutil 3.0.0-2.

You seem to be confused about the cause. This is simply a bug in the
ipmiutil packaging and doesn't really have anything special to do
with invoke-rc.d/init-system-helpers.

For the record here's the output of trying to install ipmiutil on
Debian Stretch:

$ sudo apt install ipmiutil
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libmimic0 libopencv-contrib2.4v5 libopencv-legacy2.4v5 libopencv-ml2.4v5
  libschroedinger-1.0-0 libspeechd2
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  rpcbind
The following NEW packages will be installed:
  ipmiutil rpcbind
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 515 kB of archives.
After this operation, 1 474 kB of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 http://deb.debian.org/debian stretch/main amd64 rpcbind amd64 0.2.3-0.5 [45,0 kB]
Get:2 http://deb.debian.org/debian stretch/main amd64 ipmiutil amd64 3.0.0-2 [470 kB]
Fetched 515 kB in 0s (1 097 kB/s) 
Selecting previously unselected package rpcbind.
(Reading database ... 298418 files and directories currently installed.)
Preparing to unpack .../0-rpcbind_0.2.3-0.5_amd64.deb ...
Unpacking rpcbind (0.2.3-0.5) ...
Selecting previously unselected package ipmiutil.
Preparing to unpack .../1-ipmiutil_3.0.0-2_amd64.deb ...
Unpacking ipmiutil (3.0.0-2) ...
Processing triggers for systemd (232-7) ...
Processing triggers for man-db (2.7.5-2) ...
Setting up rpcbind (0.2.3-0.5) ...
Created symlink /etc/systemd/system/multi-user.target.wants/rpcbind.service → /lib/systemd/system/rpcbind.service.
Created symlink /etc/systemd/system/sockets.target.wants/rpcbind.socket → /lib/systemd/system/rpcbind.socket.
Setting up ipmiutil (3.0.0-2) ...
Job for ipmi_port.service failed because the control process exited with error code.
See "systemctl status ipmi_port.service" and "journalctl -xe" for details.
invoke-rc.d: initscript ipmi_port, action "start" failed.
● ipmi_port.service - ipmiutil ipmi_port service
   Loaded: loaded (/lib/systemd/system/ipmi_port.service; disabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Tue 2016-12-20 11:00:57 CET; 5ms ago
  Process: 18508 ExecStart=/usr/share/ipmiutil/ipmiutil.setup >/dev/null && /usr/sbin/ipmi_port -b || : (code=exited, status=6)
      CPU: 18ms

dec 20 11:00:57 mbpah systemd[1]: Starting ipmiutil ipmi_port service...
dec 20 11:00:57 mbpah ipmiutil.setup[18508]: Can't find SMBIOS address entry…nt.
dec 20 11:00:57 mbpah ipmiutil.setup[18508]: Cannot open an IPMI driver: /de…/0,
dec 20 11:00:57 mbpah ipmiutil.setup[18508]:          or direct driverless.
dec 20 11:00:57 mbpah systemd[1]: ipmi_port.service: Control process exited…us=6
dec 20 11:00:57 mbpah systemd[1]: Failed to start ipmiutil ipmi_port service.
dec 20 11:00:57 mbpah systemd[1]: ipmi_port.service: Unit entered failed state.
dec 20 11:00:57 mbpah systemd[1]: ipmi_port.service: Failed with result 'ex…de'.
Hint: Some lines were ellipsized, use -l to show in full.
dpkg: error processing package ipmiutil (--configure):
 subprocess installed post-installation script returned error exit status 1
Processing triggers for systemd (232-7) ...
Errors were encountered while processing:
 ipmiutil
E: Sub-process /usr/bin/dpkg returned an error code (1)


The service is first enabled and then (attempt to get) started
because that's what the packages maintainer script says should
happen. If the maintainer didn't want something to be enabled/started
he would pass the --no-enable or --no-start arguments respectively.
This is not done...

The real reason the start fails (and thus the package configuration
and thus installation fails) is because the executed process
exits with a failure code. It seems atleast on my system the
reason for that is that my system simply isn't IPMI capable.


Also the service files shipped by the debian package seems to have
fundamental flaws. These files are declarative format and *not*
shell scripts! (if you want to run shell script stuff, just invoke
/bin/sh -c '....' from your service file, or put the commands
in an actuall shell script file and execute the shell script.)

ah at mbpah:/tmp/ipmiutil-3.0.0$ grep ExecStart debian/*ipmi_port.service
ExecStart=/usr/share/ipmiutil/ipmiutil.setup >/dev/null && /usr/sbin/ipmi_port -b || : 

(Preferably service files should come directly from upstream
rather than being debian-specific.)


As there seems to multiple serious packaging issues here I'm raising
the severity accordingly.

> As a result users cannot install ipmiutil in Ubuntu 16.10+.
> 
> There is existed bug in Ubuntu bugtracker.
> https://bugs.launchpad.net/ubuntu/+source/init-system-helpers/+bug/1651111

Thanks for the cross-reference. You might want to add a link to
this bug report on the ubuntu side.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=848861

> 
> -- System Information:
> Debian Release: 8.6
>   APT prefers stable-updates
>   APT policy: (500, 'stable-updates'), (500, 'testing'), (500, 'stable')
> Architecture: amd64 (x86_64)
> 
> Kernel: Linux 3.16.0-4-amd64 (SMP w/1 CPU core)
> Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
> Shell: /bin/sh linked to /bin/dash
> Init: systemd (via /run/systemd/system)
> 
> Versions of packages init-system-helpers depends on:
> ii  perl-base  5.20.2-3+deb8u6
> 
> init-system-helpers recommends no packages.
> 
> init-system-helpers suggests no packages.
> 
> Versions of packages init-system-helpers is related to:
> ii  insserv  1.14.0-5
> 
> -- no debconf information
> 

Regards,
Andreas Henriksson




More information about the Pkg-systemd-maintainers mailing list