[Bug 1971993] Comment bridged from LTC Bugzilla

bugproxy 1971993 at bugs.launchpad.net
Wed May 25 18:49:35 UTC 2022


------- Comment From BBLOCK at de.ibm.com 2022-05-25 14:45 EDT-------
Hey Frank,

(In reply to comment #12)
> Hi Benjamin; there is a plan for doing a larger s390-tools update for jammy
> (incl. more z16 enablements), and this should be incl. as well.

sounds good.

> For now I created a PPA test build (that addresses LP#1971993 only) which is
> available here:
> https://launchpad.net/~fheimes/+archive/ubuntu/lp1971993/+packages
> It has the same version string than the current s390-tools in the archive.
> I think this is most convenient, since one also needs to have the
> s390-tools-signed version installed in the same version - but a bit caution
> is needed so that really the version from the PPA is installed.
> So simplest is to just wget chreipl-fcp-mpath from the PPA and install it
> with 'apt install ./s390-tools-chreipl-fcp-mpath_2.20.0-0ubuntu4_s390x.deb'.

hmm, I didn't find any 'upstream' `s390-tools_2.20.0-0ubuntu4`, maybe I
was looking wrong; hence I've been missing `s390-tools-
signed_2.20.0-0ubuntu4`, and the tooling kept complaining about that.
For now I just forced installation with `dpkg` for testing (this won't
be a problem in practice anyway).

> Regarding the changes:
> - fixed a c&p error and moved the helper files to from /lib/udev/rules.d to /lib/udev

Yes, looks good now.

~ # dpkg-deb --contents ./s390-tools-chreipl-fcp-mpath_2.20.0-0ubuntu4_s390x.deb
drwxr-xr-x root/root         0 2022-05-20 11:48 ./
drwxr-xr-x root/root         0 2022-05-20 11:48 ./lib/
drwxr-xr-x root/root         0 2022-05-20 11:48 ./lib/udev/
-rwxr-xr-x root/root      1719 2022-05-20 11:48 ./lib/udev/chreipl-fcp-mpath-is-ipl-tgt
-rwxr-xr-x root/root      2572 2022-05-20 11:48 ./lib/udev/chreipl-fcp-mpath-is-ipl-vol
-rwxr-xr-x root/root       735 2022-05-20 11:48 ./lib/udev/chreipl-fcp-mpath-is-reipl-zfcp
-rwxr-xr-x root/root      2052 2022-05-20 11:48 ./lib/udev/chreipl-fcp-mpath-record-volume-identifier
-rwxr-xr-x root/root      5633 2022-05-20 11:48 ./lib/udev/chreipl-fcp-mpath-try-change-ipl-path
drwxr-xr-x root/root         0 2022-05-20 11:48 ./lib/udev/rules.d/
-rw-r--r-- root/root      4237 2022-02-04 11:34 ./lib/udev/rules.d/70-chreipl-fcp-mpath.rules
drwxr-xr-x root/root         0 2022-05-20 11:48 ./usr/
drwxr-xr-x root/root         0 2022-05-20 11:48 ./usr/lib/
drwxr-xr-x root/root         0 2022-05-20 11:48 ./usr/lib/chreipl-fcp-mpath/
-rw-r--r-- root/root     13850 2022-05-20 11:48 ./usr/lib/chreipl-fcp-mpath/chreipl-fcp-mpath-common.sh
drwxr-xr-x root/root         0 2022-05-20 11:48 ./usr/share/
drwxr-xr-x root/root         0 2022-05-20 11:48 ./usr/share/doc/
drwxr-xr-x root/root         0 2022-05-20 11:48 ./usr/share/doc/s390-tools-chreipl-fcp-mpath/
-rw-r--r-- root/root      3744 2022-05-20 11:48 ./usr/share/doc/s390-tools-chreipl-fcp-mpath/README.md.gz
-rw-r--r-- root/root     12526 2022-05-20 11:48 ./usr/share/doc/s390-tools-chreipl-fcp-mpath/changelog.Debian.gz
-rw-r--r-- root/root      1450 2022-01-31 11:54 ./usr/share/doc/s390-tools-chreipl-fcp-mpath/copyright
drwxr-xr-x root/root         0 2022-05-20 11:48 ./usr/share/man/
drwxr-xr-x root/root         0 2022-05-20 11:48 ./usr/share/man/man7/
-rw-r--r-- root/root      2303 2022-05-20 11:48 ./usr/share/man/man7/chreipl-fcp-mpath.7.gz

This looks like what I'd expect.

> - removed lvm2 as dependency, since a default install is nowadays with
lvm, but one can of course overrule it (but wouldn't have hurt)

Well, like I wrote before, `chreipl-fcp-mpath` doesn't depend on lvm.
The tool would just work fine without it, if I didn't forget anything by
accident. It needs udev though at runtime, otherwise the mechanism
doesn't work.

> - chreipl-fcp-mpath-common.sh doesn't get 755 assigned anymore, since
only the input script '.in' has a she-bang, but not the '.sh'. (If the
sh would have it too, lintian would complain).

I removed the she-bang in https://github.com/ibm-s390-linux/s390-tools/commit/c2f8988444d0ed8274256c1990bb7f8866c265e2 (this is in v2.20.0 already) from the `.in` because this was a problem somewhere else as well :)
Maybe you saw the issue/complaint in v2.19.0, before a rebase.

> - I choose to bundle the pre-generated man page

I saw the patch, looks good to me.

> - the chreipl-fcp-mpath-common README got bundled (unfortunately the
various READMEs are largely in different places)

You mean in the upstream repository? I put it there so folks can see it
when they go to the directory on Github:
https://github.com/ibm-s390-linux/s390-tools/tree/master/chreipl-fcp-
mpath. But yeah, there might be other tools in s390-tools that do it
differently (probably also from the time, when s390-tools wasn't hosted
on Github).

Any reason you didn't use `s390-tools-chreipl-fcp-mpath.docs`, like it
is done for the base package `s390-tools.docs`?

I did this when testing:

diff --git a/debian/s390-tools-chreipl-fcp-mpath.docs b/debian/s390-tools-chreipl-fcp-mpath.docs
new file mode 100644
index 0000000..2515ef7
--- /dev/null
+++ b/debian/s390-tools-chreipl-fcp-mpath.docs
@@ -0,0 +1 @@
+chreipl-fcp-mpath/README.md

But the result seems to be the same from the listing above. Maybe this
is just 'for taste'.

> - I think there is nothing special needed for the udev rule (I guess
dh_installudev does that with a hock). I tried w/o 'udevadm control
--reload' and it seemed to work (see attachment). (Might be worth to add
such an example as test to the readme?)

Ah indeed. There seems to be logic in place in udev that checks regularly whether any rules changed during event processing: https://github.com/systemd/systemd/blob/f6278558da0304ec6b646bb172ce4688c7f162a5/src/udev/udevd.c#L930.
So 3s after installation it ought to notice the new rules and thus work, if there is no monkey business going on, like something fiddling with the timestamps. I've not tested this, I always called `udevadm control --reload` explicitly; but I don't see why it shouldn't work here.
If you don't want the extra scriptlets in your packaging for "assurance", then that's fine.

> - I had another look at the dependencies, there were okay, but I made
them a bit more explicit.

You didn't add the `udev` runtime dependency to `s390-tools-chreipl-fcp-
mpath`? I guess the assumption is, this is always true for Ubuntu.
Although maybe in contexts like Container Images it might not, and then
having this in place *could* help (having this tool installed in a
container seems rather pointless to me).

> Would be great if you can have a quick look, so that it can be part of
the larger update (in case things are fine).

There seems to be something broken regarding the man page now (I have to
add the `--ignore-depends=s390-tools-signed`, otherwise it wouldn't
work, like I wrote above):

~ # dpkg --install --ignore-depends=s390-tools-signed ./s390-tools_2.20.0-0ubuntu4_s390x.deb
(Reading database ... 96993 files and directories currently installed.)
Preparing to unpack .../s390-tools_2.20.0-0ubuntu4_s390x.deb ...
Unpacking s390-tools (2.20.0-0ubuntu4) over (2.20.0-0ubuntu4) ...
Setting up s390-tools (2.20.0-0ubuntu4) ...
Processing triggers for initramfs-tools (0.140ubuntu13) ...
update-initramfs: Generating /boot/initrd.img-5.15.0-33-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.
Processing triggers for man-db (2.10.2-1) ...

Looks fine.

~ # dpkg --install --ignore-depends=s390-tools-signed ./s390-tools-chreipl-fcp-mpath_2.20.0-0ubuntu4_s390x.deb
Selecting previously unselected package s390-tools-chreipl-fcp-mpath.
(Reading database ... 97040 files and directories currently installed.)
Preparing to unpack .../s390-tools-chreipl-fcp-mpath_2.20.0-0ubuntu4_s390x.deb ...
Unpacking s390-tools-chreipl-fcp-mpath (2.20.0-0ubuntu4) ...
dpkg: error processing archive ./s390-tools-chreipl-fcp-mpath_2.20.0-0ubuntu4_s390x.deb (--install):
trying to overwrite '/usr/share/man/man7/chreipl-fcp-mpath.7.gz', which is also in package s390-tools 2.20.0-0ubuntu4
Processing triggers for man-db (2.10.2-1) ...
Errors were encountered while processing:
./s390-tools-chreipl-fcp-mpath_2.20.0-0ubuntu4_s390x.deb

Clashes with `s390-tools_2.20.0-0ubuntu4_s390x.deb`. So I had to force the overwrite:
~ # dpkg --install --ignore-depends=s390-tools-signed --force-overwrite ./s390-tools-chreipl-fcp-mpath_2.20.0-0ubuntu4_s390x.deb
(Reading database ... 97040 files and directories currently installed.)
Preparing to unpack .../s390-tools-chreipl-fcp-mpath_2.20.0-0ubuntu4_s390x.deb ...
Unpacking s390-tools-chreipl-fcp-mpath (2.20.0-0ubuntu4) ...
dpkg: warning: overriding problem because --force enabled:
dpkg: warning: trying to overwrite '/usr/share/man/man7/chreipl-fcp-mpath.7.gz', which is also in package s390-tools 2.20.0-0ubuntu4
Setting up s390-tools-chreipl-fcp-mpath (2.20.0-0ubuntu4) ...
Processing triggers for man-db (2.10.2-1) ...

I guess both packages pick up the man page now? I didn't debug this
further at this point. Maybe this was also wrong with my patch, and I
didn't notice!

Apart from that, functionality looks fine:

~ # lsreipl
Re-IPL type: fcp
WWPN:        0x5005076309005430
LUN:         0x4018401300000000
Device:      0.0.1700
bootprog:    10
br_lba:      0
Loadparm:    ""
Bootparms:   "printk.time=1"
~ # date +'%Y-%m-%d %H:%M:%S'
2022-05-25 15:47:35
~ # zfcp_inject pull T35-SWT-1700
spawn ssh -l block fcsw49_fcp.boeblingen.de.ibm.com
fcsw49_fcp:FID36:block> portdisable 4/3
fcsw49_fcp:FID36:block> logout
Closing the current session
Connection to fcsw49_fcp.boeblingen.de.ibm.com closed.
~ # journalctl --no-hostname -t chreipl-fcp-mpath -t systemd-udevd -t multipathd --since='2022-05-25 15:47:35'
May 25 15:48:15 multipathd[1498]: checker failed path 8:192 in map ds8k31_err_40184013_npiv
May 25 15:48:15 multipathd[1498]: ds8k31_err_40184013_npiv: remaining active paths: 1
May 25 15:48:15 chreipl-fcp-mpath[60248]: Changed re-IPL path to: 0.0.1740:0x5005076309045430:0x4018401300000000.
~ # date +'%Y-%m-%d %H:%M:%S'
2022-05-25 15:54:50
~ # zfcp_inject plug T35-SWT-1700
spawn ssh -l block fcsw49_fcp.boeblingen.de.ibm.com
fcsw49_fcp:FID36:block> portenable 4/3
fcsw49_fcp:FID36:block> logout
Closing the current session
Connection to fcsw49_fcp.boeblingen.de.ibm.com closed.
~ # journalctl --no-hostname -t chreipl-fcp-mpath -t systemd-udevd -t multipathd --since='2022-05-25 15:54:50'
May 25 15:55:37 multipathd[1498]: ds8k31_err_40184013_npiv: sdm - tur checker reports path is up
May 25 15:55:37 multipathd[1498]: 8:192: reinstated
May 25 15:55:37 multipathd[1498]: ds8k31_err_40184013_npiv: remaining active paths: 2

(didn't change the path here, but that is fine because the other one is also operational)
~ # stat /run/udev/chreiplzfcpmp-ipl-volume-id
File: /run/udev/chreiplzfcpmp-ipl-volume-id
Size: 85              Blocks: 8          IO Block: 4096   regular file
Device: 18h/24d Inode: 2792        Links: 1
Access: (0640/-rw-r-----)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-05-25 15:48:15.847619055 +0000
Modify: 2022-05-25 15:55:37.077619055 +0000
Change: 2022-05-25 15:55:37.077619055 +0000
Birth: -
~ # xxd /run/udev/chreiplzfcpmp-ipl-volume-id
00000000: 6e61 612e 3630 3035 3037 3633 3039 6666  naa.6005076309ff
00000010: 6434 3330 3030 3030 3030 3030 3030 3030  d430000000000000
00000020: 3138 3133 0a00 302e 302e 3137 3430 0030  1813..0.0.1740.0
00000030: 7835 3030 3530 3736 3330 3930 3435 3433  x500507630904543
00000040: 3000 3078 3430 3138 3430 3133 3030 3030  0.0x401840130000
00000050: 3030 3030 00                             0000.

I also ran my regression test suite:

~ # cd ~/src/s390-tools/chreipl-fcp-mpath/tests
~ # make check SCOPE=quick
Running 113 tests
(  1/113) [pass] 000-tests-install-check:install-check
(  2/113) [pass] 000-tests-install-check:system-state-check
(  3/113) [pass] 010-tests-simple-failover-remote:expect-switch-to-B
(  4/113) [pass] 010-tests-simple-failover-remote:maybe-switch-to-A-or-stable
(  5/113) [pass] 020-tests-simple-failover-local:expect-switch-to-B
(  6/113) [pass] 020-tests-simple-failover-local:maybe-switch-to-A-or-stable
(  7/113) [pass] 023-tests-simple-failover-local-chpid:expect-switch-to-B
(  8/113) [pass] 023-tests-simple-failover-local-chpid:maybe-switch-to-A-or-stable
(  9/113) [pass] 030-tests-simple-stable-remote:expect-stay-on-A
( 10/113) [pass] 030-tests-simple-stable-remote:maybe-switch-to-B-or-stable
( 11/113) [pass] 040-tests-simple-stable-local:expect-stay-on-A
( 12/113) [pass] 040-tests-simple-stable-local:maybe-switch-to-B-or-stable
( 13/113) [pass] 043-tests-simple-stable-local-chpid:expect-stay-on-A
( 14/113) [pass] 043-tests-simple-stable-local-chpid:maybe-switch-to-B-or-stable
( 15/113) [pass] 050-tests-all-paths-remote:change-reIPL-info-to-C
( 16/113) [pass] 050-tests-all-paths-remote:expect-switch-to-D
( 17/113) [pass] 050-tests-all-paths-remote:expect-no-path
( 18/113) [pass] 050-tests-all-paths-remote:expect-switch-to-C
( 19/113) [pass] 050-tests-all-paths-remote:maybe-switch-to-D-or-stable
( 20/113) [pass] 060-tests-all-paths-local:change-reIPL-info-to-C
( 21/113) [pass] 060-tests-all-paths-local:expect-switch-to-D
( 22/113) [pass] 060-tests-all-paths-local:expect-no-path
( 23/113) [pass] 060-tests-all-paths-local:expect-switch-to-C
( 24/113) [pass] 060-tests-all-paths-local:maybe-switch-to-D-or-stable
( 25/113) [pass] 063-tests-all-paths-local-chpid:change-reIPL-info-to-C
( 26/113) [pass] 063-tests-all-paths-local-chpid:expect-switch-to-D
( 27/113) [pass] 063-tests-all-paths-local-chpid:expect-no-path
( 28/113) [pass] 063-tests-all-paths-local-chpid:expect-switch-to-C
( 29/113) [pass] 063-tests-all-paths-local-chpid:maybe-switch-to-D-or-stable
( 30/113) [pass] 070-tests-crossover-replug-pull-remote:change-reIPL-info-to-C
( 31/113) [pass] 070-tests-crossover-replug-pull-remote:expect-switch-to-D
( 32/113) [pass] 070-tests-crossover-replug-pull-remote:expect-switch-to-C
( 33/113) [pass] 070-tests-crossover-replug-pull-remote:again-expect-switch-to-D
( 34/113) [pass] 070-tests-crossover-replug-pull-remote:maybe-switch-to-C-or-stable
( 35/113) [pass] 080-tests-crossover-replug-pull-local:change-reIPL-info-to-C
( 36/113) [pass] 080-tests-crossover-replug-pull-local:expect-switch-to-D
( 37/113) [pass] 080-tests-crossover-replug-pull-local:expect-switch-to-C
( 38/113) [pass] 080-tests-crossover-replug-pull-local:again-expect-switch-to-D
( 39/113) [pass] 080-tests-crossover-replug-pull-local:maybe-switch-to-C-or-stable
( 40/113) [pass] 083-tests-crossover-replug-pull-local-chpid:change-reIPL-info-to-C
( 41/113) [pass] 083-tests-crossover-replug-pull-local-chpid:expect-switch-to-D
( 42/113) [pass] 083-tests-crossover-replug-pull-local-chpid:expect-switch-to-C
( 43/113) [pass] 083-tests-crossover-replug-pull-local-chpid:again-expect-switch-to-D
( 44/113) [pass] 083-tests-crossover-replug-pull-local-chpid:maybe-switch-to-C-or-stable
( 45/113) [pass] 090-tests-quick-pull-plug:expect-nothing-to-happen
( 46/113) [pass] 100-tests-different-path:change-reIPL-info-to-C
( 47/113) [pass] 100-tests-different-path:expect-nothing-to-happen
( 48/113) [pass] 110-tests-no-wwid-file-remote:change-reIPL-info-to-C
( 49/113) [pass] 110-tests-no-wwid-file-remote:rm-wwid-file-expect-switch-to-D
( 50/113) [pass] 110-tests-no-wwid-file-remote:rm-wwid-file-expect-no-path
( 51/113) [pass] 110-tests-no-wwid-file-remote:rm-wwid-file-expect-switch-to-C
( 52/113) [pass] 110-tests-no-wwid-file-remote:rm-wwid-file-maybe-switch-to-C-or-stable
( 53/113) [pass] 120-tests-no-wwid-file-local:change-reIPL-info-to-C
( 54/113) [pass] 120-tests-no-wwid-file-local:rm-wwid-file-expect-switch-to-D
( 55/113) [pass] 120-tests-no-wwid-file-local:rm-wwid-file-expect-no-path
( 56/113) [pass] 120-tests-no-wwid-file-local:rm-wwid-file-expect-switch-to-C
( 57/113) [pass] 120-tests-no-wwid-file-local:rm-wwid-file-maybe-switch-to-C-or-stable
( 58/113) [pass] 123-tests-no-wwid-file-local-chpid:change-reIPL-info-to-C
( 59/113) [pass] 123-tests-no-wwid-file-local-chpid:rm-wwid-file-expect-switch-to-D
( 60/113) [pass] 123-tests-no-wwid-file-local-chpid:rm-wwid-file-expect-no-path
( 61/113) [pass] 123-tests-no-wwid-file-local-chpid:rm-wwid-file-expect-switch-to-C
( 62/113) [pass] 123-tests-no-wwid-file-local-chpid:rm-wwid-file-maybe-switch-to-C-or-stable
( 63/113) [pass] 130-tests-wrong-wwid-file:change-reIPL-info-to-A
( 64/113) [pass] 130-tests-wrong-wwid-file:plug-remote-D-maybe-switch
( 65/113) [pass] 130-tests-wrong-wwid-file:pull-remote-D-expect-no-change
( 66/113) [pass] 130-tests-wrong-wwid-file:plug-remote-C-maybe-switch
( 67/113) [pass] 130-tests-wrong-wwid-file:pull-remote-C-expect-switch-to-D
( 68/113) [pass] 130-tests-wrong-wwid-file:plug-chpid-B-expect-no-change
( 69/113) [pass] 130-tests-wrong-wwid-file:pull-chpid-B-expect-no-change
( 70/113) [pass] 130-tests-wrong-wwid-file:plug-local-B-expect-no-change
( 71/113) [pass] 130-tests-wrong-wwid-file:pull-local-B-expect-no-change
( 72/113) [pass] 130-tests-wrong-wwid-file:plug-remote-A-expect-no-change
( 73/113) [pass] 130-tests-wrong-wwid-file:pull-remote-A-expect-no-change
( 74/113) [pass] 130-tests-wrong-wwid-file:change-reIPL-info-to-C-no-correct-wwid-file
( 75/113) [pass] 140-tests-deleted-path-recover-remote:plug-D-and-maybe-switch
( 76/113) [pass] 140-tests-deleted-path-recover-remote:plug-C-and-stay
( 77/113) [pass] 140-tests-deleted-path-recover-remote:plug-C-and-maybe-switch
( 78/113) [pass] 140-tests-deleted-path-recover-remote:plug-D-and-switch
( 79/113) [pass] 140-tests-deleted-path-recover-remote:pull-D-expect-no-path
( 80/113) [pass] 140-tests-deleted-path-recover-remote:pull-C-expect-nothing
( 81/113) [pass] 140-tests-deleted-path-recover-remote:remove-path-C-from-system
( 82/113) [pass] 140-tests-deleted-path-recover-remote:change-reIPL-info-to-C
( 83/113) [pass] 150-tests-deleted-path-recover-local:plug-D-and-maybe-switch
( 84/113) [pass] 150-tests-deleted-path-recover-local:plug-C-and-stay
( 85/113) [pass] 150-tests-deleted-path-recover-local:plug-C-and-maybe-switch
( 86/113) [pass] 150-tests-deleted-path-recover-local:plug-D-and-switch
( 87/113) [pass] 150-tests-deleted-path-recover-local:pull-D-expect-no-path
( 88/113) [pass] 150-tests-deleted-path-recover-local:pull-C-expect-nothing
( 89/113) [pass] 150-tests-deleted-path-recover-local:remove-path-C-from-system
( 90/113) [pass] 150-tests-deleted-path-recover-local:change-reIPL-info-to-C
( 91/113) [pass] 153-tests-deleted-path-recover-local-chpid:plug-D-and-maybe-switch
( 92/113) [pass] 153-tests-deleted-path-recover-local-chpid:plug-C-and-stay
( 93/113) [pass] 153-tests-deleted-path-recover-local-chpid:plug-C-and-maybe-switch
( 94/113) [pass] 153-tests-deleted-path-recover-local-chpid:plug-D-and-switch
( 95/113) [pass] 153-tests-deleted-path-recover-local-chpid:pull-D-expect-no-path
( 96/113) [pass] 153-tests-deleted-path-recover-local-chpid:pull-C-expect-nothing
( 97/113) [pass] 153-tests-deleted-path-recover-local-chpid:remove-path-C-from-system
( 98/113) [pass] 153-tests-deleted-path-recover-local-chpid:change-reIPL-info-to-C
( 99/113) [pass] 160-tests-different-ipl-type:plug-chpid-A-and-maybe-switch
(100/113) [pass] 160-tests-different-ipl-type:pull-chpid-A-and-expect-switch
(101/113) [pass] 160-tests-different-ipl-type:plug-local-A-and-maybe-switch
(102/113) [pass] 160-tests-different-ipl-type:pull-local-A-and-expect-switch
(103/113) [pass] 160-tests-different-ipl-type:plug-remote-A-and-maybe-switch
(104/113) [pass] 160-tests-different-ipl-type:pull-remote-A-and-expect-switch
(105/113) [pass] 160-tests-different-ipl-type:change-reipl-information-back
(106/113) [pass] 160-tests-different-ipl-type:plug-chpid-A-and-nothing-happens
(107/113) [pass] 160-tests-different-ipl-type:pull-chpid-A-and-nothing-happens
(108/113) [pass] 160-tests-different-ipl-type:plug-local-A-and-nothing-happens
(109/113) [pass] 160-tests-different-ipl-type:pull-local-A-and-nothing-happens
(110/113) [pass] 160-tests-different-ipl-type:plug-remote-A-and-nothing-happens
(111/113) [pass] 160-tests-different-ipl-type:pull-remote-A-and-nothing-happens
(112/113) [pass] 160-tests-different-ipl-type:change-reipl-information-to-dasd-z
(113/113) [skip] 999-tests-debug-traces-check:debug-traces-check (not debug traces found (probably disabled))
113 tests executed, 112 passed, 0 failed, 1 skipped

All fine ?.

Removal also seems to work fine:

~ # dpkg -l libekmfweb\* libkmipclient\* s390-tools\*
dpkg-query: no packages found matching libekmfweb*
dpkg-query: no packages found matching libkmipclient*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                         Version         Architecture Description
+++-============================-===============-============-================================================
ii  s390-tools                   2.20.0-0ubuntu4 s390x        fundamental utilities for Linux on z Systems
ii  s390-tools-chreipl-fcp-mpath 2.20.0-0ubuntu4 s390x        chreipl-fcp-mpath utility for Linux on z Systems
un  s390-tools-cpuplugd          <none>          <none>       (no description available)
un  s390-tools-osasnmpd          <none>          <none>       (no description available)
ii  s390-tools-signed            2.20.0-0ubuntu3 s390x        Signed zipl stage3.bin
un  s390-tools-statd             <none>          <none>       (no description available)
~ # dpkg --remove --ignore-depends=s390-tools-signed s390-tools-chreipl-fcp-mpath
(Reading database ... 97052 files and directories currently installed.)
Removing s390-tools-chreipl-fcp-mpath (2.20.0-0ubuntu4) ...
Processing triggers for man-db (2.10.2-1) ...
~ # date +'%Y-%m-%d %H:%M:%S'
2022-05-25 18:39:22
~ # lsreipl
Re-IPL type: fcp
WWPN:        0x5005076309005430
LUN:         0x4018401300000000
Device:      0.0.1700
bootprog:    10
br_lba:      0
Loadparm:    ""
Bootparms:   "printk.time=1"
~ # zfcp_inject pull T35-SWT-1700
spawn ssh -l block fcsw49_fcp.boeblingen.de.ibm.com
fcsw49_fcp:FID36:block> portdisable 4/3
fcsw49_fcp:FID36:block> logout
Closing the current session
Connection to fcsw49_fcp.boeblingen.de.ibm.com closed.
~ # journalctl --no-hostname -t chreipl-fcp-mpath -t systemd-udevd -t multipathd --since='2022-05-25 18:39:22'
May 25 18:40:16 multipathd[1498]: checker failed path 8:192 in map ds8k31_err_40184013_npiv
May 25 18:40:16 multipathd[1498]: ds8k31_err_40184013_npiv: remaining active paths: 1

(nothing happens here because the toolset is not there anymore)

I think that covers everything.

-- 
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

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