I have an application that’s responsible for configuring the network on the host; it writes configuration files to /etc/sysconfig/network, and then invokes ifup, ifdown, etc to up and down interfaces and bonds. Since moving to SLES 12 SP1 and wicked and the wicked nanny daemon, we are seeing an issue I’m hoping someone on this list may be able to help with. This issue does not occur on SLES 11 systems using Network Manager.
The scenario is as follows. To bring up a bond, the application does the following. (The NIC names and file names I’m using are just for the purpose of the example):
Create a config file for p5p2 and copy/write the file to /etc/sysconfig/network/ifcfg-p5p2
ifup p5p2
Create a config file for p5p2 and copy/write the file to /etc/sysconfig/network/ifcfg-p5p4
ifup p5p4
Creates a config file for the bond and copy/write the file to /etc/sysconfig/network/ifcfg-bond0cpc1
ifup bond0cpc1
Everything works fine the first time, after a fresh Linux boot.
I then manually bring down the NICs/bonds with ifdowns and remove the files from the /etc/sysconfig/network directory.
Then, the second time I attempt to perform the same steps to bring up the same NICs and bond, I see the following:
Create a config file for p5p2 and copy the file to /etc/sysconfig/network/ifcfg-p5p2
ifup p5p2 (works fine)
Create a config file for p5p2 and copy the file to /etc/sysconfig/network/ifcfg-p5p4
ifup p5p4 (works fine)
Create a config file for the bond and copy the file to /etc/sysconfig/network/ifcfg-bond0cpc1
ifup bond0cpc1 (*** fails)
On the failure of the ifup of the bond the second time, the ifup returns “device-not-running”, and the same failure is exhibited over and over again. So the main question is, why is that?
The NIC I’m using is the Intel Corporation I350 Gigabit Network Connection (4-port, copper).
Here’s some more info.
If I execute the ifups in a shell script so that there’s very little time delay between copying the files into the /etc/sysconfig/network directory and ifup’ing the devices, it works every time.
cp ifcfg-p5p2 ifcfg-p5p4 /etc/sysconfig/network
ifup p5p2
ifup p5p4
cp ifcfg-bond0cpc0 /etc/sysconfig/network
ifup bond0cpc0
If you now ifdown the devices and remove their ifcfg- files from /etc/sysconfig/network and re-run the script, it works every time.
Doing the commands from the command line, or putting delays in the shell script; that is, putting sleeps between copying the files to the /etc/sysconfig/network directory and ifup’ing the devices, fails every time.
I tried manual configuration of a bond on the Intel Corporation I350 Gigabit Fiber Network Connection (4-port, fiber) and it works every time regardless.
Finally, if I disable the nanny daemon by editing /etc/wicked/common.xml (setting <use-nanny>false</use-nanny> and restarting the wicked service) manual ifup’ing works regardless. Does anyone have any ideas on what the issue could be?
Thanks in advance.
--
To unsubscribe, e-mail: wicked-devel+unsubscribe(a)opensuse.org
To contact the owner, e-mail: wicked-devel+owner(a)opensuse.org