[Bug 1971993] Re: [Ubuntu 22.04] s390-tools: subpackage chreipl-fcp-mpath installs files into wrong location and subsequently doesn't work
Frank Heimes
1971993 at bugs.launchpad.net
Wed Jun 1 08:01:01 UTC 2022
** Changed in: ubuntu-z-systems
Assignee: (unassigned) => Skipper Bug Screeners (skipper-screen-team)
** Also affects: s390-tools-signed (Ubuntu)
Importance: Undecided
Status: New
** Changed in: s390-tools-signed (Ubuntu)
Status: New => In Progress
** Changed in: s390-tools-signed (Ubuntu)
Importance: Undecided => Medium
** Changed in: s390-tools-signed (Ubuntu)
Importance: Medium => High
** Changed in: s390-tools (Ubuntu)
Importance: Medium => High
** Changed in: s390-tools-signed (Ubuntu)
Assignee: (unassigned) => Frank Heimes (fheimes)
** Changed in: s390-tools (Ubuntu)
Assignee: Skipper Bug Screeners (skipper-screen-team) => Frank Heimes (fheimes)
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to s390-tools in Ubuntu.
https://bugs.launchpad.net/bugs/1971993
Title:
[Ubuntu 22.04] s390-tools: subpackage chreipl-fcp-mpath installs files
into wrong location and subsequently doesn't work
Status in Ubuntu on IBM z Systems:
In Progress
Status in s390-tools package in Ubuntu:
In Progress
Status in s390-tools-signed package in Ubuntu:
In Progress
Bug description:
SRU Justification:
==================
[Impact]
* The recently introduced chreipl-fcp-mpath tool,
available since 22.04 in a separate binary package,
fails, due to a wrong location for the helper files.
* In Addition some less critical dependencies were fixed,
* a new man page and README added
* and executable permissions removed from a script,
that has no shebang (since it's only indirectly called).
[Test Plan]
* See below or https://launchpadlibrarian.net/602776067/simple-
test.txt
[Where problems could occur]
* The provided udev rule could be wrong and therefore
not correctly triggered or not at all.
* Or udev rule could fire too often, leading to high load.
* The change of the IPL parameter could be wrong, ending up in a system
that boots from a wrong LUN doesn't boot at all.
[Other Info]
* chreipl-fcp-mpath tools is a new optional (s390x-only) tool,
first time shipped with jammy.
__________
---Problem Description---
The current way of how the chreipl-fcp-mpath toolset from the s390-tools collection of utilities is packaged in Ubuntu 22.04 is broken, and doesn't work. The main issue is that the udev helper scripts used in the toolset are installed in /lib/udev/rules.d, instead of /lib/udev. This makes the toolset non-functional as a whole (but nothing warns about it).
The reason is with the packaging itself. The files listed in
`debian/s390-tools-chreipl-fcp-mpath.install` are explicitly installed
into the wrong location (probably a copy-and-paste error).
There are a couple other minor issues with the packaging that I've noticed while inspecting the current state to see what the reason for the main issue is:
(a) `lvm2` is not a dependency of chreipl-fcp-mpath to the best of my knowledge, `udev` and `multipath-tools` are though;
(b) the common script 'library' `chreipl-fcp-mpath-common.sh` doesn't need to be executable;
(c) no documentation is installed, neither the man page is generated, nor the provided `README.md` copied;
(d) there is nothing that triggers a udev rules database reload after installing or removing the udev rules (at least as far as I've seen).
Contact Information = Benjamin Block <bblock at de.ibm.com>
---uname output---
Linux t3545003 5.15.0-27-generic #28-Ubuntu SMP Thu Apr 14 04:55:23 UTC 2022 s390x s390x s390x GNU/Linux
Machine Type = IBM/S390 z15 8561 z/VM Version 7 Release 2.0
---Debugger---
A debugger is not configured
---Steps to Reproduce---
Install the chreipl-fcp-mpath toolset via `apt install s390-tools-chreipl-fcp-mpath`. The udev helper scripts are put into the wrong location, the toolset doesn't work.
Userspace tool common name: chreipl-fcp-mpath
The userspace tool has the following bit modes: both
Userspace deb: s390-tools-chreipl-fcp-mpath
Userspace tool obtained from project website: na
== Comment: #1 - Benjamin Block <BBLOCK at de.ibm.com> - 2022-05-05 12:56:39 ==
This is an example of how I think one could fix the issues I outlined in the description. The patch itself contains more details in the description.
This also enables the generation of the man page, which adds two
dependencies to the build: pandoc and gawk. Both are only required
during the package build, and so far I've seen both are available on
s390x in Ubuntu 22.04. Building the man page adds a bit more comfort
for users that are used to use man for documentation, so it might be
worth adding the dependencies.
== Comment: #2 - Benjamin Block <BBLOCK at de.ibm.com> - 2022-05-05 12:58:44 ==
This is an other example of how I think one could fix the issues I outlined in the description. The patch itself contains more details in the description.
This doesn't enable the generation of the man page, so it doesn't need
extra build dependencies.
== Comment: #4 - Benjamin Block <BBLOCK at de.ibm.com> - 2022-05-05 13:05:03 ==
(In reply to comment #2)
> Created attachment 153823 [details]
> example patch to fix packaging without ENABLE_DOC=1
>
> This is an other example of how I think one could fix the issues I outlined
> in the description. The patch itself contains more details in the
> description.
>
> This doesn't enable the generation of the man page, so it doesn't need extra
> build dependencies.
One might also add to that, that I added a patch
(https://github.com/ibm-s390-linux/s390-tools/commit/0d15a07c0a5842a359554b6fb5f8cba3d11fd5cc)
that is in the newest s390-tools release
(https://github.com/ibm-s390-linux/s390-tools/releases/tag/v2.21.0)
that does away with the need to generate the man page each and every
time, by also shipping a pre-cooked version along with the source.
The need for `pandoc` to generate it has been a problem in other
places where it is not available as it is in Ubuntu.
== Comment: #8 - Benjamin Block <BBLOCK at de.ibm.com> - 2022-05-05 13:22:07 ==
To further illustrate the problem, here is the log of me trying to test this:
t3545003 (0) ~ # apt search chreipl-fcp-mpath
Sorting... Done
Full Text Search... Done
s390-tools-chreipl-fcp-mpath/jammy 2.20.0-0ubuntu3 s390x
chreipl-fcp-mpath utility for Linux on z Systems
t3545003 (1) ~ # apt show s390-tools-chreipl-fcp-mpath
Package: s390-tools-chreipl-fcp-mpath
Version: 2.20.0-0ubuntu3
Priority: optional
Section: universe/admin
Source: s390-tools
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss at lists.ubuntu.com>
Original-Maintainer: Debian S/390 Team <debian-s390 at lists.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 60.4 kB
Depends: multipath-tools-boot, lvm2
Homepage: https://github.com/ibm-s390-linux/s390-tools
Download-Size: 12.3 kB
APT-Sources: http://ports.ubuntu.com/ubuntu-ports jammy/universe s390x Packages
Description: chreipl-fcp-mpath utility for Linux on z Systems
The package contains chreipl-fcp-mpath toolset from the s390-tools collection
of utilities, that uses multipath information to change the configured FCP
re-IPL path on detecting issues with the current path.
t3545003 (0) ~ # apt install s390-tools-chreipl-fcp-mpath
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
kpartx-boot multipath-tools-boot
The following NEW packages will be installed:
kpartx-boot multipath-tools-boot s390-tools-chreipl-fcp-mpath
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 27.0 kB of archives.
After this operation, 178 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://ports.ubuntu.com/ubuntu-ports jammy/main s390x kpartx-boot all 0.8.8-1ubuntu1 [6,636 B]
Get:2 http://ports.ubuntu.com/ubuntu-ports jammy/main s390x multipath-tools-boot all 0.8.8-1ubuntu1 [8,054 B]
Get:3 http://ports.ubuntu.com/ubuntu-ports jammy/universe s390x s390-tools-chreipl-fcp-mpath s390x 2.20.0-0ubuntu3 [12.3 kB]
Fetched 27.0 kB in 0s (197 kB/s)
Preconfiguring packages ...
Selecting previously unselected package kpartx-boot.
(Reading database ... 56751 files and directories currently installed.)
Preparing to unpack .../kpartx-boot_0.8.8-1ubuntu1_all.deb ...
Unpacking kpartx-boot (0.8.8-1ubuntu1) ...
Selecting previously unselected package multipath-tools-boot.
Preparing to unpack .../multipath-tools-boot_0.8.8-1ubuntu1_all.deb ...
Unpacking multipath-tools-boot (0.8.8-1ubuntu1) ...
Selecting previously unselected package s390-tools-chreipl-fcp-mpath.
Preparing to unpack .../s390-tools-chreipl-fcp-mpath_2.20.0-0ubuntu3_s390x.deb ...
Unpacking s390-tools-chreipl-fcp-mpath (2.20.0-0ubuntu3) ...
Setting up kpartx-boot (0.8.8-1ubuntu1) ...
update-initramfs: deferring update (trigger activated)
Setting up multipath-tools-boot (0.8.8-1ubuntu1) ...
update-initramfs: deferring update (trigger activated)
Setting up s390-tools-chreipl-fcp-mpath (2.20.0-0ubuntu3) ...
Processing triggers for initramfs-tools (0.140ubuntu13) ...
update-initramfs: Generating /boot/initrd.img-5.15.0-27-generic
I: The initramfs will attempt to resume from /dev/dm-0
I: (/dev/mapper/t3545003--ubd2204-swap)
I: Set the RESUME variable to override this.
Using config file '/etc/zipl.conf'
Building bootmap in '/boot'
Adding IPL section 'ubuntu' (default)
Preparing boot device: dasda (1c0a).
Done.
Scanning processes...
Scanning linux images...
Running kernel seems to be up-to-date (ABI upgrades are not
detected).
No services need to be restarted.
No containers need to be restarted.
No user sessions are running outdated binaries.
No VM guests are running outdated hypervisor (qemu) binaries on
this host.
t3545003 (0) ~ # dpkg --listfiles s390-tools-chreipl-fcp-mpath
/.
/lib
/lib/udev
/lib/udev/rules.d
/lib/udev/rules.d/70-chreipl-fcp-mpath.rules
/lib/udev/rules.d/chreipl-fcp-mpath-is-ipl-tgt
/lib/udev/rules.d/chreipl-fcp-mpath-is-ipl-vol
/lib/udev/rules.d/chreipl-fcp-mpath-is-reipl-zfcp
/lib/udev/rules.d/chreipl-fcp-mpath-record-volume-identifier
/lib/udev/rules.d/chreipl-fcp-mpath-try-change-ipl-path
/usr
/usr/lib
/usr/lib/chreipl-fcp-mpath
/usr/lib/chreipl-fcp-mpath/chreipl-fcp-mpath-common.sh
/usr/share
/usr/share/doc
/usr/share/doc/s390-tools-chreipl-fcp-mpath
/usr/share/doc/s390-tools-chreipl-fcp-mpath/changelog.Debian.gz
/usr/share/doc/s390-tools-chreipl-fcp-mpath/copyright
You see in the file listing at the end `chreipl-fcp-mpath-is-ipl-tgt`,
`chreipl-fcp-mpath-is-ipl-vol`, `chreipl-fcp-mpath-is-reipl-zfcp`,
`chreipl-fcp-mpath-record-volume-identifier`, `chreipl-fcp-mpath-try-
change-ipl-path` are located in `/lib/udev/rules.d`, instead of
`/lib/udev`.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-z-systems/+bug/1971993/+subscriptions
More information about the foundations-bugs
mailing list