← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 2129570] [NEW] Invalid PCI alias definition: 'dev_type'

 

Public bug reported:

When trying to configure two aliases with the same name, we have an
issue if the device_type is not defined:

e.g.

[pci]    
alias={"vendor_id":"144d","product_id":"a808","name":"pm983"}
alias={"vendor_id":"144d","product_id":"a80a","name":"pm983"}


Booting an instance using the flavor that use this alias is failing with error 400:
HTTP exception thrown: Invalid PCI alias definition: 'dev_type'

While trying to debug, we removed the exception handler and manage to
have this stacktrace:


nova.api.openstack.wsgi Traceback (most recent call last):                                                                                          
nova.api.openstack.wsgi   File "/opt/openstack/nova/lib/python3.6/site-packages/nova/api/openstack/wsgi.py", line 671, in wrapped                   
nova.api.openstack.wsgi     return f(*args, **kwargs)                                                                                               
nova.api.openstack.wsgi   File "/opt/openstack/nova/lib/python3.6/site-packages/nova/api/validation/__init__.py", line 110, in wrapper              
nova.api.openstack.wsgi     return func(*args, **kwargs)                                                                                            
nova.api.openstack.wsgi   File "/opt/openstack/nova/lib/python3.6/site-packages/nova/api/validation/__init__.py", line 110, in wrapper              
nova.api.openstack.wsgi     return func(*args, **kwargs)                                                                                            
nova.api.openstack.wsgi   File "/opt/openstack/nova/lib/python3.6/site-packages/nova/api/validation/__init__.py", line 110, in wrapper              
nova.api.openstack.wsgi     return func(*args, **kwargs)                                                                                            
nova.api.openstack.wsgi   [Previous line repeated 8 more times]                                                                                     
nova.api.openstack.wsgi   File "/opt/openstack/nova/lib/python3.6/site-packages/nova/api/openstack/compute/servers.py", line 699, in create         
nova.api.openstack.wsgi     **create_kwargs)                                                                                                        
nova.api.openstack.wsgi   File "/opt/openstack/nova/lib/python3.6/site-packages/nova/hooks.py", line 154, in inner                                  
nova.api.openstack.wsgi     rv = f(*args, **kwargs)                                                                                                 
nova.api.openstack.wsgi   File "/opt/openstack/nova/lib/python3.6/site-packages/nova/compute/api.py", line 2039, in create                          
nova.api.openstack.wsgi     supports_port_resource_request=supports_port_resource_request)                                                          
nova.api.openstack.wsgi   File "/opt/openstack/nova/lib/python3.6/site-packages/nova/compute/api.py", line 1459, in _create_instance                
nova.api.openstack.wsgi     reservation_id, max_count, supports_port_resource_request)                                                              
nova.api.openstack.wsgi   File "/opt/openstack/nova/lib/python3.6/site-packages/nova/compute/api.py", line 1083, in _validate_and_build_base_options
nova.api.openstack.wsgi     instance_type)                                                                                                          
nova.api.openstack.wsgi   File "/opt/openstack/nova/lib/python3.6/site-packages/nova/pci/request.py", line 272, in get_pci_requests_from_flavor     
nova.api.openstack.wsgi     flavor['extra_specs']['pci_passthrough:alias'])                                                                         
nova.api.openstack.wsgi   File "/opt/openstack/nova/lib/python3.6/site-packages/nova/pci/request.py", line 146, in _translate_alias_to_requests     
nova.api.openstack.wsgi     pci_aliases = _get_alias_from_config()                                                                                  
nova.api.openstack.wsgi   File "/opt/openstack/nova/lib/python3.6/site-packages/nova/pci/request.py", line 135, in _get_alias_from_config           
nova.api.openstack.wsgi     if aliases[name][1][0]['dev_type'] != spec['dev_type']:                                                                 
nova.api.openstack.wsgi KeyError: 'dev_type'                                                                                                        
nova.api.openstack.wsgi

** Affects: nova
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/2129570

Title:
  Invalid PCI alias definition: 'dev_type'

Status in OpenStack Compute (nova):
  New

Bug description:
  When trying to configure two aliases with the same name, we have an
  issue if the device_type is not defined:

  e.g.

  [pci]    
  alias={"vendor_id":"144d","product_id":"a808","name":"pm983"}
  alias={"vendor_id":"144d","product_id":"a80a","name":"pm983"}


  Booting an instance using the flavor that use this alias is failing with error 400:
  HTTP exception thrown: Invalid PCI alias definition: 'dev_type'

  While trying to debug, we removed the exception handler and manage to
  have this stacktrace:

  
  nova.api.openstack.wsgi Traceback (most recent call last):                                                                                          
  nova.api.openstack.wsgi   File "/opt/openstack/nova/lib/python3.6/site-packages/nova/api/openstack/wsgi.py", line 671, in wrapped                   
  nova.api.openstack.wsgi     return f(*args, **kwargs)                                                                                               
  nova.api.openstack.wsgi   File "/opt/openstack/nova/lib/python3.6/site-packages/nova/api/validation/__init__.py", line 110, in wrapper              
  nova.api.openstack.wsgi     return func(*args, **kwargs)                                                                                            
  nova.api.openstack.wsgi   File "/opt/openstack/nova/lib/python3.6/site-packages/nova/api/validation/__init__.py", line 110, in wrapper              
  nova.api.openstack.wsgi     return func(*args, **kwargs)                                                                                            
  nova.api.openstack.wsgi   File "/opt/openstack/nova/lib/python3.6/site-packages/nova/api/validation/__init__.py", line 110, in wrapper              
  nova.api.openstack.wsgi     return func(*args, **kwargs)                                                                                            
  nova.api.openstack.wsgi   [Previous line repeated 8 more times]                                                                                     
  nova.api.openstack.wsgi   File "/opt/openstack/nova/lib/python3.6/site-packages/nova/api/openstack/compute/servers.py", line 699, in create         
  nova.api.openstack.wsgi     **create_kwargs)                                                                                                        
  nova.api.openstack.wsgi   File "/opt/openstack/nova/lib/python3.6/site-packages/nova/hooks.py", line 154, in inner                                  
  nova.api.openstack.wsgi     rv = f(*args, **kwargs)                                                                                                 
  nova.api.openstack.wsgi   File "/opt/openstack/nova/lib/python3.6/site-packages/nova/compute/api.py", line 2039, in create                          
  nova.api.openstack.wsgi     supports_port_resource_request=supports_port_resource_request)                                                          
  nova.api.openstack.wsgi   File "/opt/openstack/nova/lib/python3.6/site-packages/nova/compute/api.py", line 1459, in _create_instance                
  nova.api.openstack.wsgi     reservation_id, max_count, supports_port_resource_request)                                                              
  nova.api.openstack.wsgi   File "/opt/openstack/nova/lib/python3.6/site-packages/nova/compute/api.py", line 1083, in _validate_and_build_base_options
  nova.api.openstack.wsgi     instance_type)                                                                                                          
  nova.api.openstack.wsgi   File "/opt/openstack/nova/lib/python3.6/site-packages/nova/pci/request.py", line 272, in get_pci_requests_from_flavor     
  nova.api.openstack.wsgi     flavor['extra_specs']['pci_passthrough:alias'])                                                                         
  nova.api.openstack.wsgi   File "/opt/openstack/nova/lib/python3.6/site-packages/nova/pci/request.py", line 146, in _translate_alias_to_requests     
  nova.api.openstack.wsgi     pci_aliases = _get_alias_from_config()                                                                                  
  nova.api.openstack.wsgi   File "/opt/openstack/nova/lib/python3.6/site-packages/nova/pci/request.py", line 135, in _get_alias_from_config           
  nova.api.openstack.wsgi     if aliases[name][1][0]['dev_type'] != spec['dev_type']:                                                                 
  nova.api.openstack.wsgi KeyError: 'dev_type'                                                                                                        
  nova.api.openstack.wsgi

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/2129570/+subscriptions