Description of Problem:
In /etc/sysconfig/network-scripts/network-functions, the is_available function
assumes that if modprobe succeeded, then the device must be available. When this
assumption is wrong, ifup keeps trying to bring up non-existing device which
takes time and prints lots of irrelevant error messages.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. For my laptop, I have two eth interfaces that both use the same driver
(3c59x) - one built-in and on in a docking station.
2. I have in the modules.conf:
alias eth0 3c59x
alias eth1 3c59x
3. When I am *not* plugged into docking station (and eth0 in present, but eth1
is not), I run "ifup eth1"
It takes several seconds to complete and prints a lot of ugly error messages.
Quickly figures device is just not there.
The problem is that the is_available function in network-functions assumes that
if an alias in present in modules.conf and the modprobe succeeded, the device
must be present. As this example shows, in case of several devices using the
same module this is an incorrect assumption. Instead is_available should check
"ip -o link" again after the modprobe.
See attached patch to bug #77267 for a solution to this.
Check after loading the module done in 7.03-1.
Indeed, seems to work correctly with 7.03-1.
Minor issue, though - if I have two devices (eth0 and eth1) aliased to the same
module (3c59x), then on "ifup eth1" I get a message telling "3c59x device does
not seem to be present, delaying eth1 initialization". The messages is
inaccuratre - there is a 3c59x device present (eth0), it's just that there is
only one of them...
message reworded in CVS.