Bug 787107

Summary: "ifdown-eth: line 69: echo: write error: Invalid argument" when making a bonding device down
Product: Red Hat Enterprise Linux 6 Reporter: Kamal Maiti <kmaiti>
Component: initscriptsAssignee: initscripts Maintenance Team <initscripts-maint-list>
Status: CLOSED ERRATA QA Contact: qe-baseos-daemons
Severity: high Docs Contact:
Priority: urgent    
Version: 6.2CC: azelinka, fkrska, jherrman, notting, pyaduvan
Target Milestone: rcKeywords: ZStream
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: initscripts-9.03.28-1.el6 Doc Type: Bug Fix
Doc Text:
Due to an incorrect logic operator, using initscripts to shut down the network service previously failed with an "Invalid argument" error. With this update, the code of the shutdown init script has been modified to prevent the problem, and the error is no longer returned on network service shutdown.
Story Points: ---
Clone Of:
: 1212352 (view as bug list) Environment:
RHEL 6.2
Last Closed: 2012-06-20 13:09:47 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: 1212352    

Description Kamal Maiti 2012-02-03 07:13:25 UTC
Description of problem:

Found following error while doing "service network restart" having bonded Ethernet :

"ifdown-eth: line 69: echo: write error: Invalid argument" when making a bonding device down

Version-Release number of selected component (if applicable):

initscripts-9.03.27-1.el6.x86_64

How reproducible:

Error appeared in RHEL 6.2 : (initscripts-9.03.27-1.el6.x86_64)

Testing :

cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
NETWORK=192.168.122.255
NETMASK=255.255.255.0
IPADDR=192.168.122.225
USERCTL=no
BONDING_OPTS="mode=1 arp_interval=1000 arp_ip_target=192.168.122.255 arp_validate=3"   

[root@~]# ifup bond0

$fconfig
bond0     Link encap:Ethernet  HWaddr 00:00:00:00:00:00  
          inet addr:192.168.122.225  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

[root@ ~]cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 6.2 (Santiago)

$rpm -qf /etc/sysconfig/network-scripts/ifdown-eth
initscripts-9.03.27-1.el6.x86_64

$service network restart
Shutting down interface bond0:  /etc/sysconfig/network-scripts/ifdown-eth: line 69: echo: write error: Invalid argument
                                                           [  OK  ]
Shutting down interface eth0:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface bond0:                               [  OK  ]
Bringing up interface eth0:                                [  OK  ]

>> vi /etc/sysconfig/network-scripts/ifdown-eth: line 69 :

--------------
if is_bonding_device ${DEVICE} ; then
    for device in $(LANG=C egrep -l "^[[:space:]]*MASTER=\"?${DEVICE}\"?" /etc/sysconfig/network-scripts/ifcfg-*) ; do
        is_ignored_file "$device" && continue
        /sbin/ifdown ${device##*/}
    done
    for arg in $BONDING_OPTS ; do
        key=${arg%%=*};
        [[ "${key}" != "arp_ip_target" ]] || continue
        value=${arg##*=};
        if [ "${value:0:1}" != "" ]; then
            OLDIFS=$IFS;
            IFS=',';
            for arp_ip in $value; do
                if grep -q $arp_ip /sys/class/net/${DEVICE}/bonding/arp_ip_target; then
                    echo "-$arp_ip" > /sys/class/net/${DEVICE}/bonding/arp_ip_target    //69th Line
                fi
            done
            IFS=$OLDIFS;
        else
            value=${value#+};
            if grep -q $value /sys/class/net/${DEVICE}/bonding/arp_ip_target; then
                echo "-$value" > /sys/class/net/${DEVICE}/bonding/arp_ip_target
            fi
        fi
    done
fi
----------------

Steps to Reproduce:

1. Check above

  
Actual results:

Shutting down interface bond0:  /etc/sysconfig/network-scripts/ifdown-eth: line 69: echo: write error: Invalid argument

Expected results:

No error

Additional info:

Similar bug found in BZ#745681 on RHEL 5.7 and this will be fixed in rhel5.8. Issue doesn't appear with initscripts-9.03.23-1.el6.x86_64 on RHEL 6.1. Problem appears with initscripts-9.03.27-1.el6.x86_64 on RHEL 6.2

Comment 2 Bill Nottingham 2012-02-03 16:40:32 UTC
05d7d8b6ee43103a589c8a999d5d96bdcd06f519 is the upstream commit.

Comment 9 errata-xmlrpc 2012-06-20 13:09:47 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.

http://rhn.redhat.com/errata/RHBA-2012-0816.html