+++ This bug is a downstream clone. The original bug is: +++ +++ bug 1602047 +++ ====================================================================== Description of problem: After upgrading the RHEL based hypervisor the vdsm-network service fails to start with: ~~~ Jul 17 10:52:40 systemd: Starting Virtual Desktop Server Manager network restoration... Jul 17 10:52:41 vdsm-tool: Traceback (most recent call last): Jul 17 10:52:41 vdsm-tool: File "/usr/bin/vdsm-tool", line 219, in main Jul 17 10:52:41 vdsm-tool: return tool_command[cmd]["command"](*args) Jul 17 10:52:41 vdsm-tool: File "/usr/lib/python2.7/site-packages/vdsm/tool/network.py", line 55, in upgrade_networks Jul 17 10:52:41 vdsm-tool: netupgrade.upgrade() Jul 17 10:52:41 vdsm-tool: File "/usr/lib/python2.7/site-packages/vdsm/network/netupgrade.py", line 67, in upgrade Jul 17 10:52:41 vdsm-tool: _upgrade_unified_configuration(rconfig) Jul 17 10:52:41 vdsm-tool: File "/usr/lib/python2.7/site-packages/vdsm/network/netupgrade.py", line 108, in _upgrade_unified_configuration Jul 17 10:52:41 vdsm-tool: canonicalize_networks(config.networks) Jul 17 10:52:41 vdsm-tool: File "/usr/lib/python2.7/site-packages/vdsm/network/canonicalize.py", line 43, in canonicalize_networks Jul 17 10:52:41 vdsm-tool: _canonicalize_ip_default_route(nets) Jul 17 10:52:41 vdsm-tool: File "/usr/lib/python2.7/site-packages/vdsm/network/canonicalize.py", line 205, in _canonicalize_ip_default_route Jul 17 10:52:41 vdsm-tool: existing_net_with_default_route = _net_with_default_route_from_config() Jul 17 10:52:41 vdsm-tool: File "/usr/lib/python2.7/site-packages/vdsm/network/canonicalize.py", line 217, in _net_with_default_route_from_config Jul 17 10:52:41 vdsm-tool: if attrs['defaultRoute']: Jul 17 10:52:41 vdsm-tool: KeyError: 'defaultRoute' Jul 17 10:52:41 systemd: vdsm-network.service: control process exited, code=exited status=1 Jul 17 10:52:41 systemd: Failed to start Virtual Desktop Server Manager network restoration ~~~ Version-Release number of selected component (if applicable): vdsm-4.20.32-1.el7ev.x86_64 How reproducible: Always Steps to Reproduce: - Upgrade vdsm to 4.20.32 - At least one network without 'defaultRoute' key defined in '/var/lib/vdsm/persistence/netconf/nets' directory. - Restart vdsmd service Actual results: The vdsmd service fails to start because vdsm-network dependency failed to start Expected results: The vdsmd and vdsm-network services restart correctly Additional info: The corresponding code is: ~~~ 215 def _net_with_default_route_from_config(): 216 for net, attrs in six.iteritems(RunningConfig().networks): 217 if attrs['defaultRoute']: 218 ┆ ┆ return net, attrs 219 return None ~~~ I think the following patch should fix the issue: ~~~ diff --git a/lib/vdsm/network/canonicalize.py b/lib/vdsm/network/canonicalize.py index 674f98e53..91ebce77e 100644 --- a/lib/vdsm/network/canonicalize.py +++ b/lib/vdsm/network/canonicalize.py @@ -214,7 +214,7 @@ def _canonicalize_ip_default_route(nets): def _net_with_default_route_from_config(): for net, attrs in six.iteritems(RunningConfig().networks): - if attrs['defaultRoute']: + if attrs.get('defaultRoute'): return net, attrs return None ~~~ (Originally by Miguel Martin Villamuelas)
WARN: Bug status wasn't changed from MODIFIED to ON_QA due to the following reason: [Found non-acked flags: '{'rhevm-4.2.z': '?'}', ] For more info please contact: rhv-devops: Bug status wasn't changed from MODIFIED to ON_QA due to the following reason: [Found non-acked flags: '{'rhevm-4.2.z': '?'}', ] For more info please contact: rhv-devops (Originally by rhv-bugzilla-bot)
ok, vdsm-4.20.35-1.el7ev.x86_64 # grep default /var/lib/vdsm/persistence/netconf/nets/isolated; echo $? 1 # rpm -q vdsm ; grep default /var/lib/vdsm/persistence/netconf/nets/isolated; echo $? vdsm-4.20.35-1.el7ev.x86_64 "defaultRoute": false, 0
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://access.redhat.com/errata/RHEA-2018:2319