Bug 1578028 - [OSP10] ovaException: Unsupported VIF type unbound convert '_nova_to_osvif_vif_unbound'
Summary: [OSP10] ovaException: Unsupported VIF type unbound convert '_nova_to_osvif_vi...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-nova
Version: 10.0 (Newton)
Hardware: x86_64
OS: Linux
urgent
urgent
Target Milestone: z11
: 10.0 (Newton)
Assignee: Stephen Finucane
QA Contact: OSP DFG:Compute
URL:
Whiteboard:
: 1655056 1760762 (view as bug list)
Depends On: 1661193 1661196
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-05-14 16:45 UTC by Siggy Sigwald
Modified: 2023-03-24 14:05 UTC (History)
18 users (show)

Fixed In Version: openstack-nova-14.1.0-44.el7ost
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1661193 (view as bug list)
Environment:
Last Closed: 2019-04-30 16:59:16 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Launchpad 1809136 0 None None None 2018-12-19 15:57:41 UTC
OpenStack gerrit 626228 0 'None' MERGED Handle unbound vif plug errors on compute restart 2021-01-28 21:32:30 UTC
Red Hat Issue Tracker OSP-9013 0 None None None 2021-12-10 16:13:23 UTC
Red Hat Product Errata RHBA-2019:0923 0 None None None 2019-04-30 16:59:23 UTC

Description Siggy Sigwald 2018-05-14 16:45:10 UTC
Description of problem:
We are unable to start nova-compute service on compute node. nova-compute.log on compute shows:

2018-05-12 16:42:47.323 305978 INFO os_vif [req-0a72cdea-843a-4932-b8a0-bc24c2f21d9f - - - - -] Successfully plugged vif VIFBridge(active=True,address=fa:16:3e:41:a9:2c,bridge_name='qbr8d027ff4-23',has_traffic_filtering=True,id=8d027ff4-2328-47df-9f9a-2c1a9914a83b,network=Network(9a98b244-b1d2-46b3-ab0e-be8456e3a984),plugin='ovs',port_profile=VIFPortProfileBase,preserve_on_delete=False,vif_name='tap8d027ff4-23')
2018-05-12 16:42:47.369 305978 ERROR oslo_service.service [req-0a72cdea-843a-4932-b8a0-bc24c2f21d9f - - - - -] Error starting thread.
2018-05-12 16:42:47.369 305978 ERROR oslo_service.service Traceback (most recent call last):
2018-05-12 16:42:47.369 305978 ERROR oslo_service.service   File "/usr/lib/python2.7/site-packages/oslo_service/service.py", line 708, in run_service
2018-05-12 16:42:47.369 305978 ERROR oslo_service.service     service.start()
2018-05-12 16:42:47.369 305978 ERROR oslo_service.service   File "/usr/lib/python2.7/site-packages/nova/service.py", line 117, in start
2018-05-12 16:42:47.369 305978 ERROR oslo_service.service     self.manager.init_host()
2018-05-12 16:42:47.369 305978 ERROR oslo_service.service   File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 1154, in init_host
2018-05-12 16:42:47.369 305978 ERROR oslo_service.service     self._init_instance(context, instance)
2018-05-12 16:42:47.369 305978 ERROR oslo_service.service   File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 957, in _init_instance
2018-05-12 16:42:47.369 305978 ERROR oslo_service.service     self.driver.plug_vifs(instance, net_info)
2018-05-12 16:42:47.369 305978 ERROR oslo_service.service   File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 703, in plug_vifs
2018-05-12 16:42:47.369 305978 ERROR oslo_service.service     self.vif_driver.plug(instance, vif)
2018-05-12 16:42:47.369 305978 ERROR oslo_service.service   File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/vif.py", line 771, in plug
2018-05-12 16:42:47.369 305978 ERROR oslo_service.service     vif_obj = os_vif_util.nova_to_osvif_vif(vif)
2018-05-12 16:42:47.369 305978 ERROR oslo_service.service   File "/usr/lib/python2.7/site-packages/nova/network/os_vif_util.py", line 408, in nova_to_osvif_vif
2018-05-12 16:42:47.369 305978 ERROR oslo_service.service     {'type': vif['type'], 'func': funcname})
2018-05-12 16:42:47.369 305978 ERROR oslo_service.service NovaException: Unsupported VIF type unbound convert '_nova_to_osvif_vif_unbound'
2018-05-12 16:42:47.369 305978 ERROR oslo_service.service


[stack@director:~]$ neutron port-list | grep fa:16:3e:41:a9:2c
| 8d027ff4-2328-47df-9f9a-2c1a9914a83b |                                                                                                        | fa:16:3e:41:a9:2c | {"subnet_id": "1f5ed9bc-aa7d-49bd-ac48-23b430fc0eb4", "ip_address": "172.19.9.17"}     |
[stack@director:~]$ neutron port-show 8d027ff4-2328-47df-9f9a-2c1a9914a83b
+-----------------------+------------------------------------------------------------------------------------+
| Field                 | Value                                                                              |
+-----------------------+------------------------------------------------------------------------------------+
| admin_state_up        | True                                                                               |
| allowed_address_pairs |                                                                                    |
| binding:host_id       | overcloud-compute-7.localdomain                                                    |
| binding:profile       | {}                                                                                 |
| binding:vif_details   | {"port_filter": true, "ovs_hybrid_plug": true}                                     |
| binding:vif_type      | ovs                                                                                |
| binding:vnic_type     | normal                                                                             |
| created_at            | 2017-10-31T12:31:45Z                                                               |
| description           |                                                                                    |
| device_id             | b4ef4d0b-9e39-4741-a2dd-7fd7c066d13b                                               |
| device_owner          | compute:nova                                                                       |
| extra_dhcp_opts       |                                                                                    |
| fixed_ips             | {"subnet_id": "1f5ed9bc-aa7d-49bd-ac48-23b430fc0eb4", "ip_address": "172.19.9.17"} |
| id                    | 8d027ff4-2328-47df-9f9a-2c1a9914a83b                                               |
| mac_address           | fa:16:3e:41:a9:2c                                                                  |
| name                  |                                                                                    |
| network_id            | 9a98b244-b1d2-46b3-ab0e-be8456e3a984                                               |
| port_security_enabled | True                                                                               |
| project_id            | 3b2049626c954cdc9147beee2d34b441                                                   |
| qos_policy_id         |                                                                                    |
| revision_number       | 184                                                                                |
| security_groups       | 97aa0764-c0b5-47d1-88b2-285673d46a31                                               |
|                       | c7addc13-5a77-4322-953a-9d89d42468e6                                               |
|                       | cecdad42-7c78-45e7-9ec2-fef1086dbb7e                                               |
|                       | de0a6da8-c44e-475f-90fd-1fb625840c52                                               |
| status                | ACTIVE                                                                             |
| tenant_id             | 3b2049626c954cdc9147beee2d34b441                                                   |
| updated_at            | 2018-05-12T15:37:46Z                                                               |
+-----------------------+------------------------------------------------------------------------------------+

Comment 2 Artom Lifshitz 2018-05-17 20:41:22 UTC
Would it be possible to reproduce this with debug enabled and attach DEBUG-level nova-compute logs to this BZ? I definitely see the ERROR in the sosreports, but there are some debug statements in the code that might help shed light on this.

Cheers!

Comment 3 Sahid Ferdjaoui 2018-05-18 14:57:59 UTC
In addition to Artom's request, can you provide logs of Neutron server (from controllers)

Comment 6 Sahid Ferdjaoui 2018-05-31 12:10:17 UTC
The vif_type=unbound only appears when you create a port that is not assigned to any VM. In our case, the ports are well attached to VMs and we can see that, Neutron is showing correct information.

My thinking is that the network info cache of Nova is not up to date. In nova/compute/manager.py there is a method called '_init_instance()' from where we call the driver to plug the VIFs.

My thinking is to refresh the network info cache.

diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index d7b8b71383..1ee4fe41df 100644
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -952,7 +952,8 @@ class ComputeManager(manager.Manager):
                 LOG.exception(msg, instance=instance)
             return
 
-        net_info = compute_utils.get_nw_info_for_instance(instance)
+        # Refreshed network info
+        net_info = self.network_api.get_instance_nw_info(context, instance)
         try:
             self.driver.plug_vifs(instance, net_info)
         except NotImplementedError as e:


Can you apply that patch and let me know if that resolve the issue?

Comment 7 Stephen Finucane 2018-07-05 09:41:26 UTC
This bug has been open in NEEDINFO for over a month, so I'm closing this to keep the review queue sane. Please reopen the bug if this is still an issue.

Comment 8 David Hill 2018-09-25 16:36:59 UTC
Hi guys,

   We're hitting this exact same issue so we'll try testing the patch you suggested earlier and we'll update this back then.

Thank you very much,

David Hill

Comment 11 dev.faz 2018-11-05 10:13:38 UTC
Hi,

just had the same issue.

Used the above patch and my nova-compute was able to handle the issue. So I would say the above patch solves/workarounds the issue.

Thanks,

 Fabian

Comment 12 Stephen Finucane 2018-12-19 17:43:42 UTC
This is still an issue on master and I have posted a fix for master that should resolve this. Note that that fix takes a different approach to the one suggested by Sahid earlier in this BZ. The earlier solution would solve this specific issue here but there are other corner cases it wouldn't cover [1]. It also requires a lot of expensive calls to the neutron API on startup. As such, a more general approach is to simply fail the particular instance and allow the nova-compute service to continue starting. That's what we've done.

[1] https://review.openstack.org/#/c/587498/1/nova/compute/manager.py@956

Comment 13 Stephen Finucane 2019-03-28 17:23:40 UTC
*** Bug 1655056 has been marked as a duplicate of this bug. ***

Comment 22 Joe H. Rahme 2019-04-23 10:48:31 UTC
As per #c21, the compute agent can be restarted (systemctl restart openstack-nova-compute) successfully despite the presence of the unbound port.

Comment 24 errata-xmlrpc 2019-04-30 16:59:16 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.

https://access.redhat.com/errata/RHBA-2019:0923

Comment 25 smooney 2019-11-05 17:30:26 UTC
*** Bug 1760762 has been marked as a duplicate of this bug. ***


Note You need to log in before you can comment on or make changes to this bug.