Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 1102135

Summary: udev fails to rename interfaces when there's questionable bios-es
Product: Red Hat Enterprise Linux 7 Reporter: Ben Woodard <woodard>
Component: systemdAssignee: systemd-maint
Status: CLOSED ERRATA QA Contact: Karel Volný <kvolny>
Severity: high Docs Contact:
Priority: unspecified    
Version: 7.0CC: harald, jscotka, kvolny, lnykryn, msekleta, systemd-maint-list, tdhooge, tgummels, udev-maint-list, woodard
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: systemd-208-12.el7 Doc Type: Bug Fix
Doc Text:
Cause: Rename of NIC failed because two NIC's have the same ACPI index, then no RUN jobs were executed. Consequence: Possibly missing effects of RUN jobs which were not executed. Fix: Altered udev event processing logic in a way that if rename of network device fails we execute RUN actions which relate to currently processed event. Result: More graceful handling of situations when device renaming fails.
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-05 11:10:05 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:
Bug Depends On:    
Bug Blocks: 1081283    

Description Ben Woodard 2014-05-28 14:28:38 UTC
Description of problem:
There are certain HW where the BIOS is questionable and reports the same index for ethernet interfaces. In those cases udev tries to rename the interaces and it fails. In diskless systems this can cause a node which booted just fine in RHEL6 to fail to boot. 

Here are two examples:
https://bugzilla.redhat.com/show_bug.cgi?id=1086931#c13
https://bugzilla.redhat.com/show_bug.cgi?id=1093485#c21

Affected HW will look something like this.
[root@fox sys]# grep . /sys/class/net/*/device/{index,acpi_index}
/sys/class/net/eth0/device/index:1
/sys/class/net/eth1/device/index:1
grep: /sys/class/net/*/device/acpi_index: No such file or directory

When booting one of these systems diskless it will drop you into the dracut shell and you will be able to find a line like: 
[   67.741492] localhost systemd-udevd[869]: error changing net interface name eth0 to eno1: File exists
in the rdsos

A workaround for now is to add "net.ifnames=0" to the kernel command line

Version-Release number of selected component (if applicable):
systemd-207.7.el7

How reproducible:
hardware specific

Additional info:
The BIOS vendor, in this case Intel, has been contacted. However, BIOS updates are tricky to get. There is also a possibility that we are simply misinterpreting the interface's index. Either way, systemd's udev should be able to handle the failing case more gracefully allowing dracut to find its sysroot and continue.

This does make hardware/BIOS combinations that was perfectly fine under RHEL6 and likely RHEL5 unbootable without a largely undocumented workaround therefore seems very much like a regression.

Comment 2 Harald Hoyer 2014-05-28 14:38:24 UTC
systemd-udevd should not abort the RUN jobs, if the renaming does not work. It should also reset INTERFACE.

Comment 3 Ben Woodard 2014-05-28 15:05:21 UTC
An external discussion regarding the same or a very similar issue: http://lists.freedesktop.org/archives/systemd-devel/2014-January/016482.html

Comment 4 Michal Sekletar 2014-06-26 14:14:18 UTC
Workaround suggested upstream is to copy /usr/lib/udev/rules.d/80-net-name-slot.rules to /etc/udev/rules.d/ and comment out line NAME=="", ENV{ID_NET_NAME_ONBOARD}!="", NAME="$env{ID_NET_NAME_ONBOARD}" hence names incorporating physical device location are used.

Comment 9 Michal Sekletar 2014-11-11 11:25:46 UTC
Just to be clear, change we checked in for this bug alters the udev's behavior regarding RUN jobs when renaming fails. Now udev will execute RUN jobs. Hence we handle failed-to-rename cases more gracefully.

Some changes to device policy naming if acpi index is the same for two devices were already discussed with Mellanox. So far there is no definite solution.

Comment 12 errata-xmlrpc 2015-03-05 11:10:05 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2015-0509.html