I did try that version.  Bug still exists.

I think I know why you were unable to reproduce.  It looks like the bug
only manifests itself when ip is working on an interface which has an
alias.  That's what I get for writing a bug report at 2:30 am.

See attached file for debug output from Xen's network-bridge script.
The end of the output is where the script dies when 'ip addr flush'
throws the error.


On Sun, Jun 07, 2009 at 02:06:16PM +0200, Andreas Henriksson babbled thus:
> On s??n, 2009-06-07 at 14:01 +0200, Andreas Henriksson wrote:
> > On s??n, 2009-06-07 at 02:10 -0400, Mike Edwards wrote:
> > [...]
> > > 'ip addr flush' fails with error
> > > 'Failed to send flush request: Cannot assign requested address' on first
> > > try for any given interface.  Subsequent invocations appear to work.
> > [...]
> > > To replicate: Run 'ip addr flush <dev>', where <dev> is an interface
> > > that has not yet been flushed.  It is unknown whether this bug requires
> > > a Xen kernel to replicate, or if it happens with other Lenny kernels.
> > 
> > I'm not able to reproduce.
> [...]
> 
> I'm on sid which has iproute version 20090324-1. Could you please test
> with this version to see if the problem you are experiencing has already
> been fixed?
> 
> 
> -- 
> Regards,
> Andreas Henriksson

-- 
                                                                      
Mike Edwards                    |   If this email address disappears,   
Unsolicited advertisments to    |   assume it was spammed to death.  To
this address are not welcome.   |   reach me in that case, s/-.*@/@/

"Our progress as a nation can be no swifter than our progress in education.
The human mind is our fundamental resource."
  -- John F. Kennedy
+ echo 'args: start'
args: start
++ dirname /etc/xen/scripts/network-bridge
+ dir=/etc/xen/scripts
+ . /etc/xen/scripts/xen-script-common.sh
++ set -e
+ . /etc/xen/scripts/xen-network-common.sh
++ '[' -e /etc/SuSE-release ']'
++ which ifup
+ findCommand start
+ for arg in '"$@"'
+ expr index start =
+ command=start
+ return
+ evalVariables start
+ for arg in '"$@"'
+ expr index start = '>' 1
+ modprobe netloop
++ ip route list 0.0.0.0/0
++ sed 's/.*dev \([a-z]\+[0-9]\+\).*$/\1/'
+ netdev=eth0
+ is_network_root
++ awk '{ if ($1 !~ /^[ \t]*#/ && $2 == "/") { print $3; }}' /etc/mtab
+ local rootfs=xfs
++ awk '{ if ($1 !~ /^[ \t]*#/ && $2 == "/") { print $4; }}' /etc/mtab
+ local rootopts=rw
+ [[ xfs =~ \^nfs ]]
+ [[ rw =~ _netdev ]]
+ return 1
+ netdev=eth0
+ bridge=eth0
+ antispoof=no
+ pdev=peth0
+ tdev=tmpbridge
+ case "$command" in
+ op_start
+ '[' eth0 = null ']'
+ link_exists peth0
+ ip link show peth0
+ return 1
+ create_bridge tmpbridge
+ local bridge=tmpbridge
+ '[' '!' -e /sys/class/net/tmpbridge/bridge ']'
+ brctl addbr tmpbridge
+ brctl stp tmpbridge off
+ brctl setfd tmpbridge 0
+ preiftransfer eth0
+ true
+ transfer_addrs eth0 tmpbridge
+ local src=eth0
+ local dst=tmpbridge
+ ip addr show dev tmpbridge
+ egrep -q '^ *inet '
+ ip addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state 
UNKNOWN qlen 1000
    link/ether 00:1c:c0:c1:a3:2b brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.18/23 brd 192.168.1.255 scope global eth0
    inet 192.168.1.180/23 brd 192.168.1.255 scope global secondary eth0:0
    inet6 fe80::21c:c0ff:fec1:a32b/64 scope link 
       valid_lft forever preferred_lft forever
+ ip addr show dev eth0
+ egrep '^ *inet '
+ sed -e '
s/inet/ip addr add/
s...@\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+/[0-9]\+\)@\1@
s/eth0/dev tmpbridge label tmpbridge/
s/secondary//
'
+ sh -x -e
+ ip addr add 192.168.1.18/23 brd 192.168.1.255 scope global dev tmpbridge 
label tmpbridge
+ ip addr add 192.168.1.180/23 brd 192.168.1.255 scope global dev tmpbridge 
label tmpbridge:0
+ ip route list
+ sed -ne '
/dev tmpbridge\( \|$\)/ {
  s/^/ip route del /
  p
}'
+ sh -x -e
+ ifdown eth0
+ ip link set eth0 name peth0
+ ip link set tmpbridge name eth0
+ setup_bridge_port peth0
+ local dev=peth0
+ ip link set peth0 down
+ ip addr flush peth0
Failed to send flush request: Cannot assign requested address

Reply via email to