Bug 2235269

Summary: Cannot install a system without specifying rd.zfcp configuration
Product: Red Hat Enterprise Linux 9 Reporter: Renaud Métrich <rmetrich>
Component: s390utilsAssignee: Dan Horák <dhorak>
Status: CLOSED DUPLICATE QA Contact: Vilém Maršík <vmarsik>
Severity: high Docs Contact:
Priority: high    
Version: 9.2   
Target Milestone: rc   
Target Release: ---   
Hardware: s390x   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-08-28 09:10:55 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Renaud Métrich 2023-08-28 08:54:12 UTC
Description of problem:

A customer reported that with RHEL9.2, he had to specify the `rd.zfcp` configuration in order to install a system, whereas this was not needed with RHEL9.1, since `zfcp.allow_lun_scan=1` is used.

Digging into this, I could find out that the udev rule being generated by `zdevadm` were broken on RHEL9.2, and detected as such by udev:
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
12:19:13,299 ERR systemd-udevd:/run/udev/rules.d/41-zfcp-host-0.0.0007.rules:2: GOTO="cfg_zfcp_host_0.0.0007" has no matching label, ignoring
12:19:13,299 NOTICE systemd-udevd:/run/udev/rules.d/41-zfcp-host-0.0.0007.rules:2: The line takes no effect any more, dropping
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------

This is leading to not enabling the devices, since rule gets ignored.

Comparing RHEL9.1 and RHEL9.2 generated rule files, it appears the `LABEL` line is missing (line 6):

RHEL9.1:
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
1 # Generated by chzdev
2 ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="0.0.0007", DRIVER=="zfcp", GOTO="cfg_zfcp_host_0.0.0007"                                                              
3 ACTION=="add", SUBSYSTEM=="drivers", KERNEL=="zfcp", TEST=="[ccw/0.0.0007]", GOTO="cfg_zfcp_host_0.0.0007"
4 GOTO="end_zfcp_host_0.0.0007"
5 
6 LABEL="cfg_zfcp_host_0.0.0007"
7 ATTR{[ccw/0.0.0007]online}="1"
8 
9 LABEL="end_zfcp_host_0.0.0007"
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------

RHEL9.2:
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
1 # Generated by chzdev
2 ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="0.0.0007", DRIVER=="zfcp", GOTO="cfg_zfcp_host_0.0.0007"
3 ACTION=="add", SUBSYSTEM=="drivers", KERNEL=="zfcp", TEST=="[ccw/0.0.0007]", GOTO="cfg_zfcp_host_0.0.0007"
4 GOTO="end_zfcp_host_0.0.0007"
5 
6 ATTR{[ccw/0.0.0007]online}="1"                                                  
7 
8 LABEL="end_zfcp_host_0.0.0007"
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------

This is due to a bug when redesigning the code.
This bug was fixed recently through commit 2a1a821bb3941ddd341b52068d5c05e06d907355:
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
commit 2a1a821bb3941ddd341b52068d5c05e06d907355
Author: Vineeth Vijayan <vneethv.com>
Date:   Mon Jun 19 11:32:15 2023 +0200

    zdev: add missing label in the udev-rules
    
    The udev-rules generated with the current version of chzdev command
    is missing the configuration label, incase of auto configuration,
    resulting in an ineffective configuration logic.
    Add the missing configuration start label for autoconfig.
    
    Fixes: 2e89722ef0ec ("zdev: make site specific udev-rule for ccw")
    Signed-off-by: Vineeth Vijayan <vneethv.com>
    Reviewed-by: Peter Oberparleiter <oberpar.com>
    Signed-off-by: Jan Höppner <hoeppner.com>
---
 zdev/src/udev_ccw.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/zdev/src/udev_ccw.c b/zdev/src/udev_ccw.c
index 3375a5e..1881337 100644
--- a/zdev/src/udev_ccw.c
+++ b/zdev/src/udev_ccw.c
@@ -295,6 +295,7 @@ static exit_code_t udev_ccw_write_device_legacy(struct device *dev, bool autocon
        }
        fprintf(fd, "GOTO=\"%s\"\n", end_label);
        fprintf(fd, "\n");
+       fprintf(fd, "LABEL=\"%s\"\n", cfg_label);
 
        write_attr_to_file(fd, state, id);
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------

Version-Release number of selected component (if applicable):

s390utils-2.25.0

How reproducible:

Always

Comment 1 Dan Horák 2023-08-28 09:10:55 UTC
We can't fix the RHEL 9.2 installer image, but I think it could be worked around by using a updates.img with just the fixed zdevadm. The upstream fix has been merged into RHEL 9.3 via bug 2222900. Thus closing as a duplicate.

*** This bug has been marked as a duplicate of bug 2222900 ***