Reviewed:  https://review.openstack.org/546973
Committed: 
https://git.openstack.org/cgit/openstack/neutron/commit/?id=8c23e357095b986ddd966c2d280feb2eabb933bf
Submitter: Zuul
Branch:    master

commit 8c23e357095b986ddd966c2d280feb2eabb933bf
Author: Sławek Kapłoński <sla...@kaplonski.pl>
Date:   Thu Feb 22 13:36:43 2018 +0100

    Fix creation of port when network has admin's QoS policy set
    
    In case when admin user creats QoS policy and will attach it to
    user's namespace there was an issue with getting such QoS policy
    with user's context to validate it.
    
    This patch changes it, that QoS policy is always get with elevated
    context during port/network create/update validation.
    
    Change-Id: I464888ca3920b42edd6ab638f6a317ee51ef0994
    Closes-Bug: #1750591


** Changed in: neutron
       Status: In Progress => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1750591

Title:
  Admin-deployed qos policy breaks tenant port creation

Status in neutron:
  Fix Released

Bug description:
  This is mainly following https://docs.openstack.org/neutron/pike/admin
  /config-qos.html, steps to reproduce:

  1. Admin creates qos policy "default" in admin project
  2. User creates network "mynet" in user project
  3. Admin applies qos policy to tenant network via "openstack network set 
--qos-policy default mynet"
  4. User tries to create (an instance with) a port in "mynet".

  Result: Neutron fails with "Internal server error". q-svc.log shows

  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation 
[req-f20ed290-5a24-44fe-9b2a-9cc2a6caacbc 8585b4c745184f538091963331dad1c7 
8b039227731847a0b62eddfde3ab17c0 - default default] POST failed.: 
CallbackFailure: Callback
   
neutron.services.qos.qos_plugin.QoSPlugin._validate_create_port_callback--9223372036854470149
 failed with "'NoneType' object has no attribute 'rules'"
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation 
Traceback (most recent call last):
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/pecan/core.py", line 678, in __call__
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
self.invoke_controller(controller, args, kwargs, state)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/pecan/core.py", line 569, in 
invoke_controller
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
result = controller(*args, **kwargs)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/neutron/db/api.py", line 93, in wrapped
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
setattr(e, '_RETRY_EXCEEDED', True)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in 
__exit__
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
self.force_reraise()
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in 
force_reraise
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
six.reraise(self.type_, self.value, self.tb)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/neutron/db/api.py", line 89, in wrapped
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
return f(*args, **kwargs)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/oslo_db/api.py", line 150, in wrapper
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
ectxt.value = e.inner_exc
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in 
__exit__
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
self.force_reraise()
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in 
force_reraise
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
six.reraise(self.type_, self.value, self.tb)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/oslo_db/api.py", line 138, in wrapper
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
return f(*args, **kwargs)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/neutron/db/api.py", line 128, in wrapped
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
LOG.debug("Retry wrapper got retriable exception: %s", e)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in 
__exit__
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
self.force_reraise()
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in 
force_reraise
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
six.reraise(self.type_, self.value, self.tb)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/neutron/db/api.py", line 124, in wrapped
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
return f(*dup_args, **dup_kwargs)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File 
"/usr/lib/python2.7/dist-packages/neutron/pecan_wsgi/controllers/utils.py", 
line 76, in wrapped
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
return f(*args, **kwargs)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File 
"/usr/lib/python2.7/dist-packages/neutron/pecan_wsgi/controllers/resource.py", 
line 159, in post
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
return self.create(resources)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File 
"/usr/lib/python2.7/dist-packages/neutron/pecan_wsgi/controllers/resource.py", 
line 177, in create
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
return {key: creator(*creator_args, **creator_kwargs)}
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/neutron/common/utils.py", line 665, in 
inner
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
return f(self, context, *args, **kwargs)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/neutron/db/api.py", line 163, in wrapped
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
return method(*args, **kwargs)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/neutron/db/api.py", line 93, in wrapped
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
setattr(e, '_RETRY_EXCEEDED', True)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in 
__exit__
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
self.force_reraise()
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in 
force_reraise
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
six.reraise(self.type_, self.value, self.tb)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/neutron/db/api.py", line 89, in wrapped
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
return f(*args, **kwargs)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/oslo_db/api.py", line 150, in wrapper
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
ectxt.value = e.inner_exc
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in 
__exit__
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
self.force_reraise()
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in 
force_reraise
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
six.reraise(self.type_, self.value, self.tb)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/oslo_db/api.py", line 138, in wrapper
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
return f(*args, **kwargs)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/neutron/db/api.py", line 128, in wrapped
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
LOG.debug("Retry wrapper got retriable exception: %s", e)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in 
__exit__
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
self.force_reraise()                                                            
                                                                                
 
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in 
force_reraise
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
six.reraise(self.type_, self.value, self.tb)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/neutron/db/api.py", line 124, in wrapped
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
return f(*dup_args, **dup_kwargs)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/neutron/plugins/ml2/plugin.py", line 
1208, in create_port
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
result, mech_context = self._create_port_db(context, port)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/neutron/plugins/ml2/plugin.py", line 
1197, in _create_port_db
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
resources.PORT, events.PRECOMMIT_CREATE, self, **kwargs)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/neutron_lib/callbacks/registry.py", line 
53, in notify
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
_get_callback_manager().notify(resource, event, trigger, **kwargs)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/neutron_lib/db/utils.py", line 105, in 
_wrapped
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
raise db_exc.RetryRequest(e)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in 
__exit__
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
self.force_reraise()
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in 
force_reraise
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
six.reraise(self.type_, self.value, self.tb)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/neutron_lib/db/utils.py", line 100, in 
_wrapped
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
return function(*args, **kwargs)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation   
File "/usr/lib/python2.7/dist-packages/neutron_lib/callbacks/manager.py", line 
155, in notify
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation     
raise exceptions.CallbackFailure(errors=errors)
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation 
CallbackFailure: Callback 
neutron.services.qos.qos_plugin.QoSPlugin._validate_create_port_callback--9223372036854470149
 failed with "'NoneType' object has no attribute 'rules'"
  2018-02-20 13:45:49.572 30439 ERROR neutron.pecan_wsgi.hooks.translation 
  2018-02-20 13:45:49.587 30439 INFO neutron.wsgi 
[req-f20ed290-5a24-44fe-9b2a-9cc2a6caacbc 8585b4c745184f538091963331dad1c7 
8b039227731847a0b62eddfde3ab17c0 - default default] 10.30.1.11,127.0.0.1 "POST 
/v2.0/ports HTTP/1.1" status: 500  len: 368 time: 0.5637140

  Expected result: Instance is created without error

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

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to