Bug 1256252
| Summary: | Vdsm should recover ifcfg files in case they are no longer exist and recover all networks on the server | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Virtualization Manager | Reporter: | Michael Burman <mburman> | ||||
| Component: | vdsm | Assignee: | Ondřej Svoboda <osvoboda> | ||||
| Status: | CLOSED ERRATA | QA Contact: | Michael Burman <mburman> | ||||
| Severity: | high | Docs Contact: | |||||
| Priority: | high | ||||||
| Version: | 3.6.0 | CC: | bazulay, daniel.helgenberger, danken, gklein, lpeer, lsurette, myakove, redhat, ycui, yeylon, ykaul, ylavi | ||||
| Target Milestone: | ovirt-3.6.0-rc | Keywords: | ZStream | ||||
| Target Release: | 3.6.0 | Flags: | ylavi:
Triaged+
|
||||
| Hardware: | x86_64 | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | |||||||
| : | 1263979 (view as bug list) | Environment: | |||||
| Last Closed: | 2016-03-09 19:43:50 UTC | Type: | Bug | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | Network | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Embargoed: | |||||||
| Bug Depends On: | |||||||
| Bug Blocks: | 1263979 | ||||||
| Attachments: |
|
||||||
This happens since the network is still stored in libvirt and the ifcfg file is missing. the ifcfg configurator can't handle a missing nic ifcfg file when it tries to delete it:
Traceback (most recent call last):
File "/usr/share/vdsm/network/api.py", line 890, in setupNetworks
configurator=configurator)
File "/usr/share/vdsm/network/api.py", line 397, in _delBrokenNetwork
implicitBonding=False, _netinfo=_netinfo)
File "/usr/share/vdsm/network/api.py", line 219, in wrapped
ret = func(**attrs)
File "/usr/share/vdsm/network/api.py", line 486, in _delNetwork
net_ent_to_remove.remove()
File "/usr/share/vdsm/network/models.py", line 188, in remove
self.configurator.removeBridge(self)
File "/usr/share/vdsm/network/configurators/ifcfg.py", line 182, in removeBridge
bridge.port.remove()
File "/usr/share/vdsm/network/models.py", line 100, in remove
self.configurator.removeNic(self)
File "/usr/share/vdsm/network/configurators/ifcfg.py", line 231, in removeNic
self.configApplier.removeNic(nic.name)
File "/usr/share/vdsm/network/configurators/ifcfg.py", line 644, in removeNic
with open(cf) as nicFile:
IOError: [Errno 2] No such file or directory: u'/etc/sysconfig/network-scripts/ifcfg-ens1f1'
I assume this is not a 3.6 regression, and the configurator never had the ability to handle such an evil situation where someone tries to remove a physical nic ifcfg.
Lowering urgency.
A similar outcome happens when a placeholder file with "# original file did not exist" is placed instead of e.g. ifcfg-eth0 into /var/lib/vdsm/netconfback/ and a host is rebooted. I have created a patch that lets a configurator continue gracefully (and even read HWADDR from the system). Verified on - 3.6.0-0.18.el6 with vdsm-4.17.8-1.el7ev.noarch 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. https://rhn.redhat.com/errata/RHBA-2016-0362.html |
Created attachment 1066236 [details] Logs Description of problem: Vdsm should recover ifcfg files in case there are no longer exist and recover all networks on the server. In case that ifcfg files are removed/missing/deleted for any reason, vdsm should recover them on boot and restore all networks. Version-Release number of selected component (if applicable): 3.6.0-0.12.master.el6 vdsm-4.17.3-1.el7ev.noarch Steps to Reproduce: 1. Install clean rhel 7.2 in rhev-m 3.6 latest 2. Configure some networks on host via Setup Networks 3. Delete all ifcfg files, except the ifcfg-lo, ifcfg-ovirtmgmt and the NICs ifcfg that the management network attached to 4. Reboot server Actual results: All networks are missing, except the management network, host got ip, but is in non-responsive state. Vdsm didn't recovered the ifcfg files on boot and couldn't restore networks on server. Expected results: Vdsm should recover ifcfg files in case they are missing and restore all networks.