Bug 2169517

Summary: net.naming-scheme=rhel9.0/9.1 fails to rename NIC if multiple child adapters are on same PCI bridge
Product: Red Hat Enterprise Linux 9 Reporter: Sangam <sababu>
Component: systemdAssignee: systemd maint <systemd-maint>
Status: NEW --- QA Contact: Frantisek Sumsal <fsumsal>
Severity: high Docs Contact:
Priority: high    
Version: 9.2CC: arawal, dtardon, lnykryn, mfiedler, msekleta, pjagtap, skhanvil, systemd-maint-list
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 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:

Comment 1 Lukáš Nykrýn 2023-02-20 13:20:40 UTC
Can you please share output of udevadm info -a /sys/class/net/DEVICE_NAME (replace DEVICE_NAME with the actual name) from both rhel8 and rhel9?

Comment 2 Sangam 2023-02-20 15:04:26 UTC
Hello Lukas,

Many thanks for reverting, I have asked customer to share the details, will update the BZ once the information is available.

We do observe different behavior with the naming scheme used in RHEL8.x vs RHEL 9.x, can you please help me understand the behavior?

RHEL8 : Whatever fresh installation of RHEL 8.X version or RHEL 8.X Update to superior minor release, naming-scheme is ALWAYS "rhel-8.0"
-> For example you fresh install RHEL 8.6 -> naming-scheme was "rhel-8.0"
-> For example you fresh install RHEL 8.7 -> naming-scheme was "rhel-8.0"
-> For example you have RHEL 8.5 -> naming-scheme was "rhel-8.0" -> You update this server to RHEL 8.7 -> naming-scheme still "rhel-8.0"

RHEL9 : Naming scheme version correctly applies
-> If you install RHEL 9.0 naming-scheme was "rhel-9.0"
-> If you install RHEL 9.1 naming-scheme was "rhel-9.1"
-> If you update RHEL 9.0 to 9.1 naming-scheme was also update and goes from "rhel-9.0" to "rhel-9.1"

On fresh installations the naming scheme varies between RHEL 8.x and RHEL 9.x as described above.
Minor updated on RHEL 8.x and 9.x also has a difference, I believe this is intentional to not break the naming scheme between minor updates however naming scheme changes as per RHEL minor version on RHEL9.

If you can please share more information on this it would be helpful in sharing the same information with customer.

Comment 6 Sangam 2023-02-20 19:41:27 UTC
Hello Lukas,

Customer has shared the udevadm information from both RHEL9.1/8.7 system, RHEL9.1 fresh installation with naming scheme set to 9.1 fails to rename the device. On RHEL8.7 we have naming scheme by default set to 8.0 (post minor upgrades or fresh installation of RHEL 8.7) which again causes the issue, if we forcefully set the naming scheme to 8.7 then NIC renaming happens based on "ID_NET_NAME_PATH" as described in the BUG description.

Regards
Sangam

Comment 9 David Tardon 2023-03-16 14:01:46 UTC
(In reply to Sangam from comment #2)
> Hello Lukas,
> 
> Many thanks for reverting, I have asked customer to share the details, will
> update the BZ once the information is available.
> 
> We do observe different behavior with the naming scheme used in RHEL8.x vs
> RHEL 9.x, can you please help me understand the behavior?
> 
> RHEL8 : Whatever fresh installation of RHEL 8.X version or RHEL 8.X Update
> to superior minor release, naming-scheme is ALWAYS "rhel-8.0"
> -> For example you fresh install RHEL 8.6 -> naming-scheme was "rhel-8.0"
> -> For example you fresh install RHEL 8.7 -> naming-scheme was "rhel-8.0"
> -> For example you have RHEL 8.5 -> naming-scheme was "rhel-8.0" -> You
> update this server to RHEL 8.7 -> naming-scheme still "rhel-8.0"
> 
> RHEL9 : Naming scheme version correctly applies
> -> If you install RHEL 9.0 naming-scheme was "rhel-9.0"
> -> If you install RHEL 9.1 naming-scheme was "rhel-9.1"
> -> If you update RHEL 9.0 to 9.1 naming-scheme was also update and goes from
> "rhel-9.0" to "rhel-9.1"
> 
> On fresh installations the naming scheme varies between RHEL 8.x and RHEL
> 9.x as described above.
> Minor updated on RHEL 8.x and 9.x also has a difference, I believe this is
> intentional to not break the naming scheme between minor updates however
> naming scheme changes as per RHEL minor version on RHEL9.

The default scheme is supposed to be rhel-9.0. The described behavior is a bug which will be fixed in 9.2. It has no visible effect, fortunately, because there's no difference between the schemes rhel-9.0 and rhel-9.1.

Comment 11 mfiedler 2023-03-23 19:44:20 UTC
I see this is targeted for rhel 9.2. Two questions:
1. high level timeline for the fix in 9.2?
2. any chance this fix could be backported to rhel 8.7?

Comment 13 Michal Sekletar 2023-03-28 08:54:22 UTC
I'd like to have more information about slots -> pci_dev mapping on the affected server. It seems that this information (contents of /sys/bus/pci/slots/) is not present in the latest sos_report. Please ask customer to run this shell one-liner and upload resulting pci_slots file. Thank you!

for i in /sys/bus/pci/slots/*; do echo "$i" ; echo "  $(cat "$i/address")"; done > pci_slots

Comment 17 Shreyas 2023-04-12 08:19:27 UTC
Hello Team,


Customer has provided the following requested information

&quot;for i in /sys/bus/pci/slots/*; do echo &quot;$i&quot; ; echo &quot;  $(cat &quot;$i/address&quot;)&quot;; done &gt; pci_slots&quot;

- RHEL 9.1 :
/sys/bus/pci/slots/2
  0000:20:03
/sys/bus/pci/slots/3
  0000:40:01
/sys/bus/pci/slots/5
  0000:80:01
/sys/bus/pci/slots/6
  0000:a0:03
/sys/bus/pci/slots/7
  0000:e0:03


- RHEL 8.7 :
/sys/bus/pci/slots/2
  0000:20:03
/sys/bus/pci/slots/3
  0000:40:01
/sys/bus/pci/slots/5
  0000:80:01
/sys/bus/pci/slots/6
  0000:a0:03
/sys/bus/pci/slots/7
  0000:e0:03

Comment 18 Shreyas 2023-04-12 08:19:51 UTC
Hello Team,


Customer has provided the following requested information

&quot;for i in /sys/bus/pci/slots/*; do echo &quot;$i&quot; ; echo &quot;  $(cat &quot;$i/address&quot;)&quot;; done &gt; pci_slots&quot;

- RHEL 9.1 :
/sys/bus/pci/slots/2
  0000:20:03
/sys/bus/pci/slots/3
  0000:40:01
/sys/bus/pci/slots/5
  0000:80:01
/sys/bus/pci/slots/6
  0000:a0:03
/sys/bus/pci/slots/7
  0000:e0:03


- RHEL 8.7 :
/sys/bus/pci/slots/2
  0000:20:03
/sys/bus/pci/slots/3
  0000:40:01
/sys/bus/pci/slots/5
  0000:80:01
/sys/bus/pci/slots/6
  0000:a0:03
/sys/bus/pci/slots/7
  0000:e0:03