Bug 673238

Summary: anaconda creates incorrect udev 70-persistent-net.rules entry for network device
Product: [Fedora] Fedora Reporter: James Laska <jlaska>
Component: anacondaAssignee: Anaconda Maintenance Team <anaconda-maint-list>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: high    
Version: 19CC: anaconda-maint-list, awilliam, borgan, harald, jcm, john_hull, jonathan, jordan_hargrave, jturner, linux-bugs, matt_domsch, narendra_k, paul, rbergero, shyam_iyer, vanmeeuwen+fedora
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: anaconda-15.19-1 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 674685 (view as bug list) Environment:
Last Closed: 2013-05-12 23:05:26 UTC Type: ---
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: 674685    

Description James Laska 2011-01-27 19:36:16 UTC
Description of problem:

After a fresh @minimal install of rawhide, the udev rules file (/etc/udev/rules.d/70-persistent-net.rules) created by anaconda is incorrect.

Apparently it should have KERNEL=="eth0", instead of KERNEL=="pci2*".  See below for additional details.

Version-Release number of selected component (if applicable):
* anaconda-15.18-1.fc15

How reproducible:
100%

Steps to Reproduce:
1. Boot rawhide boot.iso (see for link https://fedoraproject.org/wiki/Test_Day:2011-01-27_Network_Device_Naming_With_Biosdevname)
2. At the time of this bug, using an updates.img is required (see test day link above)
3. Perform a @minimal install (which currently does *not* install biosdevname)
4. Complete installation.  Before reboot, manually create a dracut initramfs to work around bug#673192
  
Actual results:

After booting into system ... the system is confused by the name of the iface.  It uses eth0 and pci2#1.

For example ...

# ls /sys/class/net/
eth0  lo
^^^^

# ls /etc/sysconfig/network-scripts/ifcfg-*
/etc/sysconfig/network-scripts/ifcfg-lo
/etc/sysconfig/network-scripts/ifcfg-pci2#1
                                     ^^^^^^

Expected results:

pci2#1 should be used in all cases


Additional info:

1) Further investigation shows that the package 'biosdevname' is *not* installed
2) Because biosdevname is *not* installed, and because the udev rules (created by anaconda I think) are not correct (so I'm told ... I don't fully understand the rules format) (KERNEL=="pci2#*"), it defaults to eth0.

$ cat /etc/udev/rules.d/70-persistent-net.rules 

# This file was automatically generated by the /lib/udev/write_net_rules
# program run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.

# Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rule written by anaconda)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:a4:29:75", ATTR{type}=="1", KERNEL=="pci2#*", NAME="pci2#1"
                                                             ^^^^^^^
3) # biosdevname -d
BIOS device: pci2#1
Kernel name: eth0
             ^^^^
Permanant MAC: 52:54:00:A4:29:75
Assigned MAC : 52:54:00:A4:29:75
Driver: 8139cp
Driver version: 1.3
Firmware version: 
Bus Info: 0000:00:03.0
PCI name      : 0000:00:03.0
PCI Slot      : 2
Index in slot: 1

Comment 1 Jon Masters 2011-02-01 20:43:07 UTC
biosdevname does need to be always installed, and needs to be in Kickstart or minimal configs too.

Comment 2 David Cantrell 2011-02-02 14:23:21 UTC
comps needs to add biosdevname to the minimal group.

Comment 3 Bill Nottingham 2011-02-02 19:02:28 UTC
Done, but according to upstream, we shouldn't be writing persistent rules for biosdevname-handled interfaces. Patch forthcoming.

Comment 4 Paul Howarth 2011-02-14 15:03:14 UTC
biosdevname is currently in the buildsys-build group in comps-f15.xml.in; shouldn't it be in the core group?

A side-effect of this is that iputils is in the buildroot for every build (via initscripts, udev and then biosdevname), meaning that I can't use the tmpfs plugin on a Fedora 14 builder with mock (Bug #648653) for Fedora 15/Rawhide builds at all (this was previously possible with most packages that didn't pull in either iputils or policycoreutils to their buildroots via other dependency chains).

Comment 5 Matt Domsch 2011-02-17 21:07:20 UTC
Notting committed change to comps to move it into @core.  Need this in Alpha as the feature is to be enabled by default in F15.

Comment 6 Matt Domsch 2011-02-17 21:13:05 UTC
anaconda is pulling in biosdevname to its environment, though there's no RPM Requires: on it.  Until notting's comps fix lands, the installed system won't have biosdevname automatically installed.  Hence anaconda wrote out persistent-net rules that couldn't be used during subsequent boots.

IMHO, anaconda shouldn't be writing out persistent-net rules, but let udev do that.

Comment 7 Matt Domsch 2011-02-17 21:17:27 UTC
Moving to blocker, as feature is intended to be enabled by default, but isn't w/o this comps change.

Comment 8 Robyn Bergeron 2011-02-18 17:39:13 UTC
Per 2011-02-18 Alpha Blocker Meeting -

#agreed 673238 - Likely not an Alpha blocker, but comps+udev fixes are already 
                included and will be present in RC1

Comment 9 Fedora End Of Life 2013-04-03 20:32:09 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 19 development cycle.
Changing version to '19'.

(As we did not run this process for some time, it could affect also pre-Fedora 19 development
cycle bugs. We are very sorry. It will help us with cleanup during Fedora 19 End Of Life. Thank you.)

More information and reason for this action is here:
https://fedoraproject.org/wiki/BugZappers/HouseKeeping/Fedora19

Comment 10 Adam Williamson 2013-05-12 23:05:26 UTC
This was fixed long, long ago. Closing.