Bug 1410351

Summary: [neutron][VLAN-Aware][ovs+dpdk]VM create ERROR in Trunk Port.
Product: Red Hat OpenStack Reporter: VIKRANT <vaggarwa>
Component: openstack-novaAssignee: Jakub Libosvar <jlibosva>
Status: CLOSED ERRATA QA Contact: awaugama
Severity: medium Docs Contact:
Priority: medium    
Version: 10.0 (Newton)CC: amuller, atelang, berrange, chrisw, dasmith, ddomingo, eglynn, fbaudin, jjoyce, jlibosva, jschluet, kchamart, lyarwood, nyechiel, sbauza, sferdjao, sgordon, slinaber, srevivo, tvignaud, vaggarwa, vromanso, yrachman
Target Milestone: z2Keywords: ZStream
Target Release: 10.0 (Newton)   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: openstack-nova-14.0.3-2.el7ost Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-02-23 21:15:47 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description VIKRANT 2017-01-05 09:09:02 UTC
Description of problem:

With "ovs+dpdk" setup, while trying to spawn VLAN aware VM hitting the issue.

following error message reported in "nova show <instance>" output.

~~~
| fault                                | {"message": "Exceeded maximum number of retries. Exceeded max scheduling attempts 3 for instanc
e 9c11637a-8d18-401c-a9c4-018765110d90. Last exception: OVS configuration failed with: Unexpected error while running command. |
|                                      | Command: sudo nova-rootwrap /etc/nova/rootwrap", "code": 500, "details": "  File \"/usr/lib/pyt
hon2.7/site-packages/nova/conductor/manager.py\", line 492, in build_instances                                                 |
|                                      |     filter_properties, instances[0].uuid)                                                      
                                                                                                                               |
|                                      |   File \"/usr/lib/python2.7/site-packages/nova/scheduler/utils.py\", line 184, in populate_retr
y                                                                                                                              |
|                                      |     raise exception.MaxRetriesExceeded(reason=msg)                                             
                                                                                                                               |
~~~


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

How reproducible:
Everytime for Cu.

Steps to Reproduce:
1. Create sub port.
2. Try to spawn using the port.
3. Instance is going into ERROR state. 

Actual results:
Instance spawn operation is getting failed.

Expected results:
It should get successfully completed. 

Additional info:

Comment 5 Assaf Muller 2017-01-05 13:18:35 UTC
Jakub, can you please triage?

Comment 6 Jakub Libosvar 2017-01-05 13:24:29 UTC
(In reply to Assaf Muller from comment #5)
> Jakub, can you please triage?

Will have a look

Comment 7 Jakub Libosvar 2017-01-05 13:45:12 UTC
The issue is that Nova doesn't support vhostuser for conversion to os-vif type in Newton - this patch https://review.openstack.org/#/c/334048/

Comment 8 Jakub Libosvar 2017-01-05 14:04:13 UTC
To describe the issue better is that Nova started using os-vif library. As this transition is in progress, support for trunk was implemented only to os-vif omitting nova code.

2017-01-05 01:50:43.697 40178 DEBUG nova.network.os_vif_util [req-b57615e3-07d3-4aa4-bc7d-d0dba791e70d 30cf353c5c094ad1b6060d55f7d7feff 47e925e032b14635ac2e656811b5c28b - - -] No conversion for VIF type vhostuser yet nova_to_osvif_vif /usr/lib/python2.7/site-packages/nova/network/os_vif_util.py:378

Nova in Newton doesn't support transition from libvirt vif to os-vif for vhostuser vif type but only for ovs vif type. os-vif takes care of creating provided tbr-<> bridge. That explains the error about missing trunk bridge. Once os-vif creates trunk bridge, ovsdb handler in Neutron will be triggered based on ovsdb events.

I'll try to provide scratch build for nova containing the patch from comment 7 to test, whether we can move forward with trunk+dpdk

Comment 20 errata-xmlrpc 2017-02-23 21:15: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.

https://rhn.redhat.com/errata/RHBA-2017-0319.html