← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1750591] Re: Admin-deployed qos policy breaks tenant port creation

 

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 <slawek@xxxxxxxxxxxx>
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


References