Bug 1669835 - [OSP13] Spawning Guest Instance With Trusted Virtual Function Fails
Summary: [OSP13] Spawning Guest Instance With Trusted Virtual Function Fails
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-nova
Version: 13.0 (Queens)
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: ---
Assignee: OSP DFG:Compute
QA Contact: OSP DFG:Compute
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-01-27 12:42 UTC by Vadim Khitrin
Modified: 2023-03-21 19:11 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-01-30 15:50:06 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 1636395 0 high CLOSED [RFE][nova][13]: Trusted Virtual Functions 2023-10-06 18:00:25 UTC

Description Vadim Khitrin 2019-01-27 12:42:20 UTC
Description of problem:

Worked on previous puddle '2018-12-13.4' (see related BZ#1636395).

When attempting to create a port with a binding-profile 'trusted:true' on a SR-IOV network and attaching it to an instance results in a failure.

Network:
openstack network show sriovone
+---------------------------+--------------------------------------+
| Field                     | Value                                |
+---------------------------+--------------------------------------+
| admin_state_up            | UP                                   |
| availability_zone_hints   |                                      |
| availability_zones        |                                      |
| created_at                | 2019-01-27T09:07:04Z                 |
| description               |                                      |
| dns_domain                | None                                 |
| id                        | e4e3f712-d77d-42fd-af39-81760d0607cd |
| ipv4_address_scope        | None                                 |
| ipv6_address_scope        | None                                 |
| is_default                | None                                 |
| is_vlan_transparent       | None                                 |
| mtu                       | 9000                                 |
| name                      | sriovone                             |
| port_security_enabled     | True                                 |
| project_id                | 9d1cbd0845d44a4085b435e8194edf05     |
| provider:network_type     | vlan                                 |
| provider:physical_network | sriov-1                              |
| provider:segmentation_id  | 600                                  |
| qos_policy_id             | None                                 |
| revision_number           | 4                                    |
| router:external           | Internal                             |
| segments                  | None                                 |
| shared                    | False                                |
| status                    | ACTIVE                               |
| subnets                   | 2a72f5c7-381c-48a7-bf08-66247c658729 |
| tags                      |                                      |
| updated_at                | 2019-01-27T09:07:05Z                 |
+---------------------------+--------------------------------------+

Create port:
openstack port create --network e4e3f712-d77d-42fd-af39-81760d0607cd --vnic-type direct --binding-profile trusted=true Trusted_Port
+-----------------------+------------------------------------------------------------------------------+
| Field                 | Value                                                                        |
+-----------------------+------------------------------------------------------------------------------+
| admin_state_up        | UP                                                                           |
| allowed_address_pairs |                                                                              |
| binding_host_id       |                                                                              |
| binding_profile       | trusted='true'                                                               |
| binding_vif_details   |                                                                              |
| binding_vif_type      | unbound                                                                      |
| binding_vnic_type     | direct                                                                       |
| created_at            | 2019-01-27T09:10:45Z                                                         |
| data_plane_status     | None                                                                         |
| description           |                                                                              |
| device_id             |                                                                              |
| device_owner          |                                                                              |
| dns_assignment        | None                                                                         |
| dns_name              | None                                                                         |
| extra_dhcp_opts       |                                                                              |
| fixed_ips             | ip_address='60.20.135.101', subnet_id='2a72f5c7-381c-48a7-bf08-66247c658729' |
| id                    | b65d4d97-38fa-4944-96e8-55745a62ba16                                         |
| ip_address            | None                                                                         |
| mac_address           | fa:16:3e:fe:7f:9d                                                            |
| name                  | Trusted_Port                                                                 |
| network_id            | e4e3f712-d77d-42fd-af39-81760d0607cd                                         |
| option_name           | None                                                                         |
| option_value          | None                                                                         |
| port_security_enabled | True                                                                         |
| project_id            | 2bd99f0cb36342debfdddbf75a74a842                                             |
| qos_policy_id         | None                                                                         |
| revision_number       | 6                                                                            |
| security_group_ids    | b03cd43e-e6ae-4398-8782-5465246feccf                                         |
| status                | DOWN                                                                         |
| subnet_id             | None                                                                         |
| tags                  |                                                                              |
| trunk_details         | None                                                                         |
| updated_at            | 2019-01-27T09:10:45Z                                                         |
+-----------------------+------------------------------------------------------------------------------+

Boot an instance:
openstack server create --flavor m1.medium.huge_pages_cpu_pinning_numa_node-0 --image rhel-guest-image-7.5-192.x86_64.qcow2 --nic port-id=b65d4d97-38fa-4944-96e8-55745a62ba16 TrustedVM
+-------------------------------------+-------------------------------------------------------------------------------------+
| Field                               | Value                                                                               |
+-------------------------------------+-------------------------------------------------------------------------------------+
| OS-DCF:diskConfig                   | MANUAL                                                                              |
| OS-EXT-AZ:availability_zone         |                                                                                     |
| OS-EXT-SRV-ATTR:host                | None                                                                                |
| OS-EXT-SRV-ATTR:hypervisor_hostname | None                                                                                |
| OS-EXT-SRV-ATTR:instance_name       |                                                                                     |
| OS-EXT-STS:power_state              | NOSTATE                                                                             |
| OS-EXT-STS:task_state               | scheduling                                                                          |
| OS-EXT-STS:vm_state                 | building                                                                            |
| OS-SRV-USG:launched_at              | None                                                                                |
| OS-SRV-USG:terminated_at            | None                                                                                |
| accessIPv4                          |                                                                                     |
| accessIPv6                          |                                                                                     |
| addresses                           |                                                                                     |
| adminPass                           | RCHW4wTKcorm                                                                        |
| config_drive                        |                                                                                     |
| created                             | 2019-01-27T09:13:10Z                                                                |
| flavor                              | m1.medium.huge_pages_cpu_pinning_numa_node-0 (8c6066e6-c4e6-4f67-885b-52ae4fb1d3e5) |
| hostId                              |                                                                                     |
| id                                  | 98e9a02c-bbac-4920-8530-31847ebcce13                                                |
| image                               | rhel-guest-image-7.5-192.x86_64.qcow2 (17bf4664-b172-4997-8190-d65fa3aa42b4)        |
| key_name                            | None                                                                                |
| name                                | TrustedVM                                                                           |
| progress                            | 0                                                                                   |
| project_id                          | 2bd99f0cb36342debfdddbf75a74a842                                                    |
| properties                          |                                                                                     |
| security_groups                     | name='default'                                                                      |
| status                              | BUILD                                                                               |
| updated                             | 2019-01-27T09:13:10Z                                                                |
| user_id                             | 2d89968bd40646d8897a0598f42d2d7e                                                    |
| volumes_attached                    |                                                                                     |
+-------------------------------------+-------------------------------------------------------------------------------------+

View instances state:
openstack server list
+--------------------------------------+--------------+--------+------------------------+---------------------------------------+----------------------------------------------+
| ID                                   | Name         | Status | Networks               | Image                                 | Flavor                                       |
+--------------------------------------+--------------+--------+------------------------+---------------------------------------+----------------------------------------------+
| 98e9a02c-bbac-4920-8530-31847ebcce13 | TrustedVM    | ERROR  |                        | rhel-guest-image-7.5-192.x86_64.qcow2 | m1.medium.huge_pages_cpu_pinning_numa_node-0 |
| a519721e-3ba8-4819-bcd2-d0a812061a6a | NonTrustedVM | ACTIVE | sriovone=60.20.135.116 | rhel-guest-image-7.5-192.x86_64.qcow2 | m1.medium.huge_pages_cpu_pinning_numa_node-0 |
+--------------------------------------+--------------+--------+------------------------+---------------------------------------+----------------------------------------------+

View TrustedVM:
openstack server show 98e9a02c-bbac-4920-8530-31847ebcce13 -c fault -f value
{u'message': u'No valid host was found. There are not enough hosts available.', u'code': 500, u'details': u'  File "/usr/lib/python2.7/site-packages/nova/conductor/manager.py", line 1145, in schedule_and_build_instances\n    instance_uuids, return_alternates=True)\n  File "/usr/lib/python2.7/site-packages/nova/conductor/manager.py", line 742, in _schedule_instances\n    return_alternates=return_alternates)\n  File "/usr/lib/python2.7/site-packages/nova/scheduler/utils.py", line 787, in wrapped\n    return func(*args, **kwargs)\n  File "/usr/lib/python2.7/site-packages/nova/scheduler/client/__init__.py", line 53, in select_destinations\n    instance_uuids, return_objects, return_alternates)\n  File "/usr/lib/python2.7/site-packages/nova/scheduler/client/__init__.py", line 37, in __run_method\n    return getattr(self.instance, __name)(*args, **kwargs)\n  File "/usr/lib/python2.7/site-packages/nova/scheduler/client/query.py", line 42, in select_destinations\n    instance_uuids, return_objects, return_alternates)\n  File "/usr/lib/python2.7/site-packages/nova/scheduler/rpcapi.py", line 158, in select_destinations\n    return cctxt.call(ctxt, \'select_destinations\', **msg_args)\n  File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/client.py", line 174, in call\n    retry=self.retry)\n  File "/usr/lib/python2.7/site-packages/oslo_messaging/transport.py", line 131, in _send\n    timeout=timeout, retry=retry)\n  File "/usr/lib/python2.7/site-packages/oslo_messaging/_drivers/amqpdriver.py", line 559, in send\n    retry=retry)\n  File "/usr/lib/python2.7/site-packages/oslo_messaging/_drivers/amqpdriver.py", line 550, in _send\n    raise result\n', u'created': u'2019-01-27T09:13:12Z'}

Resulted in the following error on compute node:
cat /var/log/containers/nova/noca-compute.log
(text omitted)
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager [req-a29c0d23-5e5d-47f7-a7e9-1b41a76ef8b0 - - - - -] Error updating resources for node compute-0.localdomain.: libvirtError: Node device not found: no node device with matching name 'net_eth1_8a_68_bd_df_0e_bc'
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager Traceback (most recent call last):
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager   File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 7379, in update_available_resource_for_node
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager     rt.update_available_resource(context, nodename)
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager   File "/usr/lib/python2.7/site-packages/nova/compute/resource_tracker.py", line 673, in update_available_resource
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager     resources = self.driver.get_available_resource(nodename)
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager   File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 6426, in get_available_resource
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager     self._get_pci_passthrough_devices()
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager   File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 5922, in _get_pci_passthrough_devices
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager     pci_info.append(self._get_pcidev_info(name))
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager   File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 5883, in _get_pcidev_info
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager     device.update(_get_device_capabilities(device, address))
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager   File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 5854, in _get_device_capabilities
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager     pcinet_info = self._get_pcinet_info(address)
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager   File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 5797, in _get_pcinet_info
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager     virtdev = self._host.device_lookup_by_name(devname)
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager   File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/host.py", line 838, in device_lookup_by_name
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager     return self.get_connection().nodeDeviceLookupByName(name)
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager   File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 186, in doit
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager     result = proxy_call(self._autowrap, f, *args, **kwargs)
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager   File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 144, in proxy_call
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager     rv = execute(f, *args, **kwargs)
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager   File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 125, in execute
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager     six.reraise(c, e, tb)
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager   File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 83, in tworker
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager     rv = meth(*args, **kwargs)
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager   File "/usr/lib64/python2.7/site-packages/libvirt.py", line 4295, in nodeDeviceLookupByName
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager     if ret is None:raise libvirtError('virNodeDeviceLookupByName() failed', conn=self)
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager libvirtError: Node device not found: no node device with matching name 'net_eth1_8a_68_bd_df_0e_bc'
2019-01-27 07:24:05.460 1 ERROR nova.compute.manager
(text omitted)

Will attach SOS reports in the comment.

Version-Release number of selected component (if applicable): 
puddle: '2019-01-22.1'
puppet-nova-12.4.0-14.el7ost.noarch
openstack-nova-conductor-17.0.7-5.el7ost.noarch
python-nova-17.0.7-5.el7ost.noarch
openstack-nova-compute-17.0.7-5.el7ost.noarch
openstack-nova-scheduler-17.0.7-5.el7ost.noarch
python2-novaclient-10.1.0-1.el7ost.noarch
openstack-nova-migration-17.0.7-5.el7ost.noarch
openstack-nova-api-17.0.7-5.el7ost.noarch
openstack-nova-common-17.0.7-5.el7ost.noarch
openstack-nova-console-17.0.7-5.el7ost.noarch
openstack-nova-placement-api-17.0.7-5.el7ost.noarch
openstack-nova-novncproxy-17.0.7-5.el7ost.noarch

How reproducible: always


Steps to Reproduce:
1. Deploy overcloud with SR-IOV capabilities
2. Create 'SR-IOV network'
3. Create port with binding-profile 'trusted:true'
4. Spawn instance

Actual results:

Instance fails to spawn

Expected results:

Successful spawn of instance

Additional info:

Comment 2 Vadim Khitrin 2019-01-30 15:50:06 UTC
I used old templates which did not enable Trusted Virtual Functions when deploying with TripleO.

Everything works with correct templates.


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