Bug 191302 - ifup-eth script not working with ethernet bridging in FC5
ifup-eth script not working with ethernet bridging in FC5
Status: CLOSED WORKSFORME
Product: Fedora
Classification: Fedora
Component: initscripts (Show other bugs)
5
i386 Linux
medium Severity medium
: ---
: ---
Assigned To: Bill Nottingham
Brock Organ
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2006-05-10 12:51 EDT by Seth Noyes
Modified: 2014-03-16 22:59 EDT (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2006-12-30 14:57:16 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Seth Noyes 2006-05-10 12:51:47 EDT
Description of problem:
In Fedora Core 5 the /etc/sysconfig/network-scripts/ifup-eth shell script has
the flowing block of code:
     82 # now check the real state
     83 is_available ${REALDEVICE} || {
     84       if [ -n "$alias" ]; then
     85          echo $"$alias device ${DEVICE} does not seem to be present,
delaying initialization."
     86       else
     87          echo $"Device ${DEVICE} does not seem to be present, delaying
initialization."
     88       fi
     89       exit 1
     90 }
     91
     92 # is the device wireless? If so, configure wireless device specifics
     93 is_wireless_device ${DEVICE} && . ./ifup-wireless
Located above the bridge creation code.  The is_available check fails when
looking for the virtual device br0, and therefore dies prior to the
initialization of the bridge.


Version-Release number of selected component (if applicable):
Fedora Core 5 Vanilla Install from ISO


How reproducible:
This issue is always reproducible with the standard ifup-eth script.

Steps to Reproduce:
1. run "service network stop"
2. Create /etc/sysconfig/network-scripts/ifcfg-br0 with the following
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.1.2
NETMASK=255.255.255.0
ONBOOT=yes
3. Create /etc/sysconfig/network-scripts/ifcfg-eth0 with the following
DEVICE=eth0
TYPE=Ethernet
BRIDGE=br0
ONBOOT=yes
4. Create /etc/sysconfig/network-scripts/ifcfg-eth1 with the following
DEVICE=eth0
TYPE=Ethernet
BRIDGE=br0
ONBOOT=yes
5. run "service network start" 
  
Actual results:
When initializing br0 the response is "Device br0 does not seem to be present,
delaying initialization" and FAILED.

Expected results:
All OKs.

Additional info:
This issue does not occur on Fedora Core 4, and yum does not update this shell
script.  The issue appears to be contained to new installs of Fedora Core 5 only.
Comment 1 Luciano Rocha 2006-07-11 12:42:57 EDT
I had the same problem, but is now fixed in initscripts-8.31.5-1. (And the
correct component was initscripts, not bridge-utils.)
Comment 2 Samuel Díaz García 2006-09-08 13:34:17 EDT
If you use bridge iface name greater than bridge ports iface, it works.
For example: I define a bridge zlan0 with eth0 and eth2 as its ports and this works.

If I put "br0" instead "zlan0" don't works.
Comment 3 David Woodhouse 2006-09-09 03:57:33 EDT
Seems to work for me. Please provide more information about what happens when
'is_available br0' fails. It should already have created the bridge device by
then. Does it work if you add a sleep after the 'brctl addbr' line?
Comment 4 Ben Lentz 2006-12-30 14:38:23 EST
This is happening to me as well, initscripts 8.31.1-1.

is_available br0 test never works. If I do "brctl addbr br0" then "ifup br0"
it's fine.

So, it would seem there's a new timing issue introduced in the initscripts
package between FC4 and FC5. The brctl addbr code in ifup-eth isn't running
before the is_available code in ifup, and the process is failing prematurely
because of this.

The timing issue seems code-flow related, not wall-clock related (e.g. adding a
sleep doesn't help me). In /sbin/ifup, the is_available code is executed well
before the OTHER_SCRIPT code runs /etc/sysconfig/network-scripts/ifup-eth, which
is where the brctl code lives. And because there's no provision in /sbin/ifup
prior to referencing is_available for TYPE=Bridge, it breaks. There are
provisions, however, in /sbin/ifup for VLAN interfaces, and these are placed
before the is_available check.

Perhaps a function needs to be inserted before the is_available call in
/sbin/ifup to check for TYPE=Bridge. I find it strange that the preparation for
vlan configs is setup to run vconfig from /sbin/ifup, and that the preparation
for bridging configs is setup run brctl from
/etc/sysconfig/network-scripts/ifup-eth.

I'd think we'd want them to happen at about the same time... the bonding code,
the bridging code and the vlan code. Just my two cents.

When will this be fixed?
Comment 5 Ben Lentz 2006-12-30 14:51:52 EST
I am an idiot. This is fixed in initscripts 8.13.6-1. I should've paid closer
attention to Luciano's comment.

Can someone close this bug? I was given the impression this was still broken
because the Status was New.

Note You need to log in before you can comment on or make changes to this bug.