oslo db retry decorator doesn't apply to add_router_interface

Bug #1475218 reported by Kevin Benton
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Undecided
Kevin Benton

Bug Description

http://logs.openstack.org/64/197564/17/check/gate-tempest-dsvm-neutron-full/1493b21/logs/screen-q-svc.txt.gz#_2015-07-16_07_38_42_299

2015-07-16 07:38:42.299 ERROR neutron.api.v2.resource [req-38378c88-9223-434e-92b5-2124b1a6442a tempest-TestNetworkAdvancedServerOps-2072830200 tempest-TestNetworkAdvancedServerOps-1241923202] add_router_interface failed
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource Traceback (most recent call last):
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/api/v2/resource.py", line 83, in resource
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource result = method(request=request, **args)
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/api/v2/base.py", line 210, in _handle_action
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource return getattr(self._plugin, name)(*arg_list, **kwargs)
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/l3_dvr_db.py", line 291, in add_router_interface
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource context, router, interface_info['subnet_id'], device_owner)
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/l3_db.py", line 603, in _add_interface_by_subnet
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource 'name': ''}}), [subnet], True
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/plugins/ml2/plugin.py", line 1015, in create_port
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource result, mech_context = self._create_port_db(context, port)
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/plugins/ml2/plugin.py", line 990, in _create_port_db
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource result = super(Ml2Plugin, self).create_port(context, port)
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/db_base_plugin_v2.py", line 837, in create_port
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource self.ipam.allocate_ips_for_port_and_store(context, port, port_id)
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/ipam_non_pluggable_backend.py", line 205, in allocate_ips_for_port_and_store
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource ips = self._allocate_ips_for_port(context, port)
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/ipam_non_pluggable_backend.py", line 396, in _allocate_ips_for_port
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource p['mac_address'])
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/ipam_non_pluggable_backend.py", line 329, in _allocate_fixed_ips
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource context, fixed['subnet_id'], fixed['ip_address'])
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/ipam_non_pluggable_backend.py", line 147, in _allocate_specific_ip
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource for ip_range in results:
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2516, in __iter__
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource return self._execute_and_instances(context)
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2531, in _execute_and_instances
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource result = conn.execute(querycontext.statement, self._params)
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 914, in execute
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource return meth(self, multiparams, params)
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/elements.py", line 323, in _execute_on_connection
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource return connection._execute_clauseelement(self, multiparams, params)
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1010, in _execute_clauseelement
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource compiled_sql, distilled_params
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1146, in _execute_context
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource context)
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1337, in _handle_dbapi_exception
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource util.raise_from_cause(newraise, exc_info)
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/compat.py", line 199, in raise_from_cause
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource reraise(type(exception), exception, tb=exc_tb)
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1139, in _execute_context
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource context)
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 450, in do_execute
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource cursor.execute(statement, parameters)
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 205, in execute
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource self.errorhandler(self, exc, value)
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource raise errorclass, errorvalue
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource DBDeadlock: (_mysql_exceptions.OperationalError) (1205, 'Lock wait timeout exceeded; try restarting transaction') [SQL: u'SELECT ipavailabilityranges.allocation_pool_id AS ipavailabilityranges_allocation_pool_id, ipavailabilityranges.first_ip AS ipavailabilityranges_first_ip, ipavailabilityranges.last_ip AS ipavailabilityranges_last_ip \nFROM ipavailabilityranges INNER JOIN ipallocationpools ON ipallocationpools.id = ipavailabilityranges.allocation_pool_id \nWHERE ipallocationpools.subnet_id = %s FOR UPDATE'] [parameters: ('131feb81-5f02-4167-ac32-340b22809e56',)]
2015-07-16 07:38:42.299 9946 ERROR neutron.api.v2.resource

Changed in neutron:
assignee: nobody → Kevin Benton (kevinbenton)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

Fix proposed to branch: master
Review: https://review.openstack.org/202449

Changed in neutron:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (feature/qos)

Fix proposed to branch: feature/qos
Review: https://review.openstack.org/202461

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (feature/qos)

Reviewed: https://review.openstack.org/202461
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=bcb4d237a79be9af18f1bcc792e1827c18b058d2
Submitter: Jenkins
Branch: feature/qos

commit bcb4d237a79be9af18f1bcc792e1827c18b058d2
Author: Kevin Benton <email address hidden>
Date: Thu Jul 16 02:07:48 2015 -0700

    Add oslo db retry decorator to non-CRUD actions

    The previously added decorators to the create and update handlers
    in the API layer only applied to actions that followed the standard
    create/update path. However, for API operations like add_router_interface,
    a different path is followed that wasn't covered by a retry decorator.

    This patch adds the decorator to handle deadlocks in those operations as
    well.

    Closes-Bug: #1475218
    Change-Id: Ib354074e6a3f68cedb95fd774f905d94ca16a830
    (cherry picked from commit 435ffa7c67cf8668063588e2af760c1ff595dfbb)

tags: added: in-feature-qos
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.openstack.org/202449
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=d04335c448aa15cf9e1902e22ed4cd17b6ed344b
Submitter: Jenkins
Branch: master

commit d04335c448aa15cf9e1902e22ed4cd17b6ed344b
Author: Kevin Benton <email address hidden>
Date: Thu Jul 16 02:07:48 2015 -0700

    Add oslo db retry decorator to non-CRUD actions

    The previously added decorators to the create and update handlers
    in the API layer only applied to actions that followed the standard
    create/update path. However, for API operations like add_router_interface,
    a different path is followed that wasn't covered by a retry decorator.

    This patch adds the decorator to handle deadlocks in those operations as
    well.

    Closes-Bug: #1475218
    Change-Id: Ib354074e6a3f68cedb95fd774f905d94ca16a830

Changed in neutron:
status: In Progress → Fix Committed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (feature/qos)

Fix proposed to branch: feature/qos
Review: https://review.openstack.org/204130

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Fix proposed to branch: feature/qos
Review: https://review.openstack.org/204950

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on neutron (feature/qos)

Change abandoned by Ihar Hrachyshka (<email address hidden>) on branch: feature/qos
Review: https://review.openstack.org/204130
Reason: Abandoned since there is a more fresh rebase: https://review.openstack.org/204950

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (feature/qos)
Download full text (21.1 KiB)

Reviewed: https://review.openstack.org/204950
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=d3708de0cb1dacc610bc9585a55dd260a862104d
Submitter: Jenkins
Branch: feature/qos

commit ea02f25fbef43580c619eb778aab3dc874427eef
Author: Moshe Levi <email address hidden>
Date: Wed Jul 15 11:13:50 2015 +0300

    Update OVS Agent to work with Agent Extension Mgr

    Change-Id: I1887d402a4377babb648182727cf51b9f2627e1c

commit c22cce92f8cc93392e07124d00771c3c5a962cba
Author: Jakub Libosvar <email address hidden>
Date: Thu Jul 16 14:23:26 2015 +0200

    Instantiate qos agent driver

    Change-Id: Icd8a725f231e2749bb81da0bcad0f7ef95beb676

commit ddd9ee9a4c1dc36b405cb4cb854bb1b46ed32e98
Author: Ihar Hrachyshka <email address hidden>
Date: Thu Jul 16 15:15:11 2015 +0200

    objects.rule: enable database tests for QosRule

    While at it, simplified inheritance mess in test_policy.

    Change-Id: I6cf2394a27f8bb29a18c99effe2dc2251c138d59

commit 0395f142031bb200373b439c7798629eee1321eb
Author: Mike Kolesnik <email address hidden>
Date: Wed Jul 15 10:44:15 2015 +0300

    Handle qos_policy on network/port create/update

    Added handling for qos_policy_id field in the network and port
    entities via ML2 extension driver.
    The QoS profile will be associated to the network/port when requested as
    part of the entity creation or update.

    Allow ML2 extension manager to not register for any api extension
    (new use case).

    ===

    Extend the resources using the QoS extension class

    Since the QoS extension for plugins is handles by this class, it makes
    sense for it to handle also property extension of resources.

    For ML2 this means that that extend_{network,port}_dict functions will
    handle the extension of resources by calling QosExtensionHandler.
    This logic can easily be reused by other plugins.

    Note: we should make sure that resource extension does not require db
    access, otherwise we see DBDeadLock errors and random tempest failures.
    To achieve this, we define a new SQLAlchemy joined relationship on
    policy bindings to make networks and ports receive those bindings on
    their fetch from database. After that, the only work to do left for
    resource extension handler is to copy the fetched policy into resource
    dictionary.

    ===

    Also enable new qos ml2 extension until we configure it in gate via
    project-config and devstack-gate to make sure it's enabled and tested.

    Co-Authored-By: Ihar Hrachyshka <email address hidden>
    Partially-implements: blueprint quantum-qos-api
    Change-Id: I1b7d4611215a471d5c24eb3d7208dcddb7e015f4

commit 0a33e355bcfb0a44ad3617f659ab452a04abdbdb
Author: Ihar Hrachyshka <email address hidden>
Date: Fri Jul 10 18:00:34 2015 +0200

    objects.qos.policy: support per type rule lists as synthetic fields

    This is a significant piece of work.

    It enables neutron objects to define fields that are lazily loaded on
    field access. To achieve that,

    - field should be mentioned in cls.synthetic_fields
    - obj_load_attr should be extended to lazily...

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (feature/qos)

Fix proposed to branch: feature/qos
Review: https://review.openstack.org/205508

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (feature/qos)
Download full text (23.0 KiB)

Reviewed: https://review.openstack.org/205508
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=fcc5d5bcf7348f3c6e530463ef4e90acddd04286
Submitter: Jenkins
Branch: feature/qos

commit 69f4b813e8a086512f39ee3ef5b8f3354f9af8c0
Author: Ihar Hrachyshka <email address hidden>
Date: Tue Jul 21 15:05:33 2015 +0200

    [qos] cleanup _find_object from neutron.db.api

    Instead of having a separate function for id-based search, make
    get_object accept any kwargs, including id=, and reuse it everywhere
    where we used _find_object before.

    Change-Id: Ibd94c41fb847d67aabb94172d0117bafc0fdbdf6

commit 517cf5b843922b6a789c4d4fd1381444acbb91d2
Author: Ihar Hrachyshka <email address hidden>
Date: Wed Jul 22 12:53:00 2015 +0200

    Revert "Mute neutron.callbacks notification logs."

    This reverts commit e19eb49c1c066c8fa4a3c19183bca1daef553a5c.

    We don't use callbacks to extend resources, so no need to mute the logs.

    Change-Id: I8eaffa243f74a8f93dfc1638727ac9cd0bdf505d

commit 5d58a6877336089ccd89acee6edc2b7c9ee9ee3c
Author: Ihar Hrachyshka <email address hidden>
Date: Wed Jul 22 12:54:53 2015 +0200

    qos: kill get_namespace() from service plugin

    Its usage was removed as of I3c406910991c33cf959c5345d76153eabe3ace2d
    that is now included in feature/qos branch.

    Change-Id: Iddab10729cf12e3b7425c5d2298f2a6b3436289c

commit e467fb3f5bc3ae925838ad3fc8a7a41185a9c4c1
Author: John Schwarz <email address hidden>
Date: Tue Jun 30 17:57:19 2015 +0300

    Base infrastructure for QoS API tests

    This introduces the basic methods in the tempest client, that allow the
    testing of the QoS plugin. This also contains 2 (very) simple tests
    which test creation and deletion of both policies and bandwidth rules,
    as well as list/show for both resources. While creation is done
    explicitly, deletion is done implicitly (all resources are deleted after
    the test, during tearDown)

    Minor fixes to the QoS plugin are included as well.

    Change-Id: I0f34ed8464857859bcd519e301a49b0b067593b0

commit ea02f25fbef43580c619eb778aab3dc874427eef
Author: Moshe Levi <email address hidden>
Date: Wed Jul 15 11:13:50 2015 +0300

    Update OVS Agent to work with Agent Extension Mgr

    Change-Id: I1887d402a4377babb648182727cf51b9f2627e1c

commit c22cce92f8cc93392e07124d00771c3c5a962cba
Author: Jakub Libosvar <email address hidden>
Date: Thu Jul 16 14:23:26 2015 +0200

    Instantiate qos agent driver

    Change-Id: Icd8a725f231e2749bb81da0bcad0f7ef95beb676

commit ddd9ee9a4c1dc36b405cb4cb854bb1b46ed32e98
Author: Ihar Hrachyshka <email address hidden>
Date: Thu Jul 16 15:15:11 2015 +0200

    objects.rule: enable database tests for QosRule

    While at it, simplified inheritance mess in test_policy.

    Change-Id: I6cf2394a27f8bb29a18c99effe2dc2251c138d59

commit 0395f142031bb200373b439c7798629eee1321eb
Author: Mike Kolesnik <email address hidden>
Date: Wed Jul 15 10:44:15 2015 +0300

    Handle qos_policy on network/port create/update

    Added handling for qos_policy_id field in the network and port
    entities via ML2 extension driver....

Changed in neutron:
milestone: none → liberty-2
status: Fix Committed → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (feature/pecan)

Fix proposed to branch: feature/pecan
Review: https://review.openstack.org/207903

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (feature/pecan)
Download full text (70.7 KiB)

Reviewed: https://review.openstack.org/207903
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=9badcd249dab2d3330f0cd608496b59c9f44499a
Submitter: Jenkins
Branch: feature/pecan

commit 991ea00e6c115343eabecc62e86072175823f81f
Author: Moshe Levi <email address hidden>
Date: Thu Jul 30 12:04:15 2015 +0300

    SR-IOV: Fix SR-IOV agent to run ip link commands as root

    Commit https://review.openstack.org/#/c/155523/
    remove the remaining root_helper args, but didn't
    update the SR-IOV agent to execute them as root.

    This patch updates the agent to execute ip link commands
    as root and pass options argument as a list in the
    self._as_root method.

    Closes-Bug: #1479694
    Change-Id: I53cafd61845a69fae3a759fb7526950d655ffa20

commit 5b3bacedf6c014815bef03c2e821b5eb8ef92dcb
Author: Saksham Varma <email address hidden>
Date: Thu Jul 23 22:46:23 2015 -0700

    Moved out cisco n1kv mech driver and db models

    Moving out Cisco N1Kv database models and the mech driver
    to the openstack/networking-cisco repo as part of the second
    phase vendor-core decomposition

    Partial-Bug: #1479123
    Partial-implements: blueprint core-vendor-decomposition

    Change-Id: I65a704b238d8cbe2951a6912fa4f1e8518c6f412

commit 65ac8cd0a80548e115b8ec1d4cfd47a94422fddf
Author: OpenStack Proposal Bot <email address hidden>
Date: Wed Jul 29 20:44:01 2015 +0000

    Updated from global requirements

    Change-Id: I3a884a73d51df0f93b5cc88b3e3250d81bb1f455

commit f0e8356d04d04600c072a1c0f0bdf274ff19ab8c
Author: sridhargaddam <email address hidden>
Date: Mon Jul 27 03:46:48 2015 +0000

    Update dhcp agent cache for network:dhcp ports

    When a network with a dhcp_enabled subnet is scheduled on a dhcp
    agent, dhcp driver creates the network:dhcp port for the subnet.
    However, the port info is not updated in dhcp agents internal cache.
    Subsequently if the user deletes the network:dhcp port, the port is
    properly deleted on the server side (i.e., in the database) and when
    the port_delete_end notification is sent to the dhcp agent, it simply
    ignores it as the port entry would be missing in the cache. This patch
    fixes this issue by updating the dhcp agents cache when dhcp driver
    creates the network:dhcp port for the subnets.

    Closes-Bug: #1478426
    Change-Id: I69f5834dd964a4320c606c4e0aa2cdba70416943

commit cb60d0bb4e0cc0cba68f59fdf5f4e89d6ec52950
Author: changzhi <email address hidden>
Date: Thu Jul 16 10:14:16 2015 +0800

    Keep dns nameserver order consistency

    Currently, there is no dns servers prioritization for subnets
    for Neutron.

    Generally speaking, it is useful to keep the order of dns
    nameservers consistent. Add a new column named 'order' in table
    'dnsnameservers' and add nameserver into DB one by one.

    Closes-Bug: #1218629
    Implements: blueprint keep-dns-nameserver-orderconsistency
    Change-Id: Id937aea411397d39370368a4eb45be26c4eefa9e

commit b39e1469e824bc8bc79e1ecafa98825a94811c0b
Author: Salvatore Orlando <email address hidden>
Date: Tue Jun 23 04:54:2...

tags: added: in-feature-pecan
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (feature/qos)

Fix proposed to branch: feature/qos
Review: https://review.openstack.org/209268

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Fix proposed to branch: feature/qos
Review: https://review.openstack.org/209556

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on neutron (feature/qos)

Change abandoned by Ihar Hrachyshka (<email address hidden>) on branch: feature/qos
Review: https://review.openstack.org/209268
Reason: In favor of: https://review.openstack.org/#/c/209556/

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (feature/qos)
Download full text (42.1 KiB)

Reviewed: https://review.openstack.org/209556
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=cc0ae6dd49da3e67c1d0400bc422e735c27e98fb
Submitter: Jenkins
Branch: feature/qos

commit 1753187d490758238a09827f867a2d6542ee941b
Author: Moshe Levi <email address hidden>
Date: Tue Jul 28 15:46:10 2015 +0300

    Update OVS driver to work with objects

    This patch updates the QoS OVS driver to work with policy NeutronObjects
    that are passed by the agent extension manager, instead of lists of rule
    dicts, as we originally expected. It also adds validation that the
    rules that are sent by the neutron-server are actually supported by the
    backend.

    Finally, port dict was not really enough to determine the name of the
    port in ovsdb. 'name' field is not really present in all port dicts, and
    does not reflect what is known to ovs anyway. So instead, we should
    rely on vif_port object to determine the ovs port name. Since ovs agent
    only added the vif_port value to details dict when binding was desired,
    I made adding the vif_port object unconditional, and covered that fact
    with unit tests.

    With this patch in place, I was able to get policy rules applied to a
    port in devstack installation. Functional tests will belong to a
    follow-up.

    Partially-Implements: blueprint quantum-qos-api
    Change-Id: I8926adb0a30728e4f82e55d71ad7e76676a22086

commit 7ccc705f6177d9fd198f079e8b57cf44e58b1963
Author: John Schwarz <email address hidden>
Date: Mon Aug 3 15:49:13 2015 +0300

    Add API tests for non-accessible policies

    Tests which dealt with creating a rule for a policy that the tenant has
    no access to, or for a policy which does not even exist, were missing.
    This patch adds them.

    Partially-Implements: quantum-qos-api
    Change-Id: I0a2679fa1ccfb7bae6083df9a71c6cb5205a21d9

commit 0c154ca94438e26884770742822728ecde3810e0
Author: John Schwarz <email address hidden>
Date: Mon Aug 3 16:56:27 2015 +0300

    Gracefully handle fetching nonexistent rule

    Currently, if we invoke the API for 'show rule' but the rule does not
    exist, an exception is raised from deep within Neutron. This in turns
    causes an uncaught exception and the user will see 'ServerFault'. This
    patch proposes a fix for this scenario - the case where the rule does
    not exist is handled and a NeutronException is caused, causing a proper
    'NotFound' error on the client side instead.

    Partially-Implements: blueprint quantum-qos-api
    Change-Id: Ic703a0865d1cfa057ab1ad5290b793b22df06af6

commit 651eeb6a5f40e58b7a6b3ccb59826bb6f08827c0
Author: Ihar Hrachyshka <email address hidden>
Date: Sun Aug 2 23:44:53 2015 +0200

    use single transaction to update qos policy associatation

    To make association changes atomic, use autonested transaction.

    Change-Id: I582ff43a0ce2f17e3f9fedf7cd32dfbac1ebae28
    Partially-Implements: blueprint quantum-qos-api

commit 12ff4d6b5890c2fd1e0a3e58f974be3e1f1465ca
Author: John Schwarz <email address hidden>
Date: Mon Jul 27 12:09:10 2015 +0300

    Replace to_dict() calls with a function decorator
...

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (feature/qos)

Fix proposed to branch: feature/qos
Review: https://review.openstack.org/209927

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (feature/qos)
Download full text (44.0 KiB)

Reviewed: https://review.openstack.org/209927
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=0a0b4c53c0dfdb1d1274286d7c1058ddccf17410
Submitter: Jenkins
Branch: feature/qos

commit 81009f6b942e468214db9550d58cda11ecf06545
Author: Moshe Levi <email address hidden>
Date: Sun Aug 2 12:58:54 2015 +0300

    SR-IOV: Update eswitch manager to support rate

    This patch update the eswitch manager to support
    max rate on VF, moreover it updates the eswitch
    manager to be singleton so it can be called from the
    SR-IOV qos driver.

    Partially-Implements: blueprint ml2-qos
    Change-Id: I3e0d0a3fe2effade4e7bcd94018313ab2beb8f28

commit 0e2ce9c5c4cf5a44b32858c1842a3e4bc9a46e37
Author: Ihar Hrachyshka <email address hidden>
Date: Tue Aug 4 15:29:37 2015 +0200

    Follow up with some cleanup for agent qos_driver

    Removed error handling for missing rule type handler since the rule type
    is already filtered thru supported types for the backend, so in case the
    handler is really not present, that's a huge bug in the qos driver
    extension and should not be handled gracefully.

    Also fixed some grammar in docstrings.

    Change-Id: Id157bd1e105051a583fea8e5107326289c551739
    Partially-Implements: quantum-qos-api

commit 75737c5ef0f7abe8aab80f77336ff9be18494ebc
Author: John Schwarz <email address hidden>
Date: Mon Aug 3 18:33:44 2015 +0300

    Gracefully handle duplicate rule creation

    Previously, creating a second bandwidth limit rule for a policy raised
    an uncaught exception, which eventually caused 'ServerFault' on the
    client side. This patch replaces this exception with a NeutronException
    which leads to a more correct 'Conflict' error instead.

    Note that the code is implemented in the base object class. This means
    that future versioned objects will also feature this restriction if
    their database implies that no duplicate entries can be created.

    Change-Id: I882d60843e1e651f3f9754746ac670f499431466
    Partially-Implements: quantum-qos-api

commit 1753187d490758238a09827f867a2d6542ee941b
Author: Moshe Levi <email address hidden>
Date: Tue Jul 28 15:46:10 2015 +0300

    Update OVS driver to work with objects

    This patch updates the QoS OVS driver to work with policy NeutronObjects
    that are passed by the agent extension manager, instead of lists of rule
    dicts, as we originally expected. It also adds validation that the
    rules that are sent by the neutron-server are actually supported by the
    backend.

    Finally, port dict was not really enough to determine the name of the
    port in ovsdb. 'name' field is not really present in all port dicts, and
    does not reflect what is known to ovs anyway. So instead, we should
    rely on vif_port object to determine the ovs port name. Since ovs agent
    only added the vif_port value to details dict when binding was desired,
    I made adding the vif_port object unconditional, and covered that fact
    with unit tests.

    With this patch in place, I was able to get policy rules applied to a
    port in devstack installation. Functional tests will belon...

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (feature/qos)

Fix proposed to branch: feature/qos
Review: https://review.openstack.org/212166

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on neutron (feature/qos)

Change abandoned by Ihar Hrachyshka (<email address hidden>) on branch: feature/qos
Review: https://review.openstack.org/212166
Reason: Wrong branch.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

Fix proposed to branch: master
Review: https://review.openstack.org/212170

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)
Download full text (60.4 KiB)

Reviewed: https://review.openstack.org/212170
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=70727ba781e1d9e95a4e79dd61408b3ee2ae9886
Submitter: Jenkins
Branch: master

commit bb1546df15b57923fdbb9057407274bdcce59c50
Author: John Schwarz <email address hidden>
Date: Mon Aug 3 18:55:31 2015 +0300

    Forbid attaching rules if policy isn't accessible

    Following up patch If06de416dfe0eb7115fd4be9feb461fae8e8358d, this patch
    continues to make sure all access to QoS policies are attempted safely -
    if the policy doesn't exist or it's not accessible (for tenant_id
    reasons), then an exception will be raised instead.

    Change-Id: Id7e64c745cdd63d650a3f69572635dc10197259c
    Partially-Implements: quantum-qos-api

commit d56fea0a39cbb53c36b0f7df3f7baef34588ec9a
Author: Miguel Angel Ajo <email address hidden>
Date: Tue Aug 11 13:51:16 2015 +0200

    Fix the low level OVS driver to really do egress

    It seems that the Queue + QoS + linux-htb implementation was really
    limiting ingress by default. So this patch switches the implementation
    to the ovs ingress_policing_rate and ingress_policing_burst parameters
    of the Interface table.

    Later in time we may want to revise this, to make TC & queueing possible,
    but this is good enough for egress limiting.

    Also, removed the _update_bandwidth_limit del+set on OvS QoS driver for
    the bandwidth limit rule update, since that's not needed anymore.

    Change-Id: Ie802a235ae19bf679ba638563ac7377337448f2a
    Partially-Implements: ml2-qos

commit 995c35221bd9d51a71022902a00a1d9e23449787
Author: Moshe Levi <email address hidden>
Date: Fri Aug 7 17:35:48 2015 +0300

    SR-IOV: Add Agent QoS driver to support bandwidth limit

    This patch adds SR-IOV agent driver which uses eswitch manager to set VF
    rate limit. It also updates the agent to call port_delete api of the
    extension manager to cleanup when port is deleted.

    Partially-Implements: blueprint ml2-sriov-qos-with-bwlimiting
    Change-Id: I364fc8158e502d4dcc3510d6157f12969961a11d

commit 08f0bb9ce5c821b421394d2c7d9186f40c417f7d
Author: Yalei Wang <email address hidden>
Date: Thu Aug 6 01:03:20 2015 +0800

    Pass the extension driver exception to plugin

    The extension driver is intercepted by driver manager currently. It will
    cover the errors/exceptions happened in extension drivers. The extension
    process will continue even if preceding extension driver get a wrong/useless
    extended result, or even no result.
    This patch make process_[create|update]_<resource>() and
    extend_<resource>_dict() methods return the exception, and log it with proper
    level respectively, and also include a minor optimization for the
    extend_<resource>_dict() methods.

    Change-Id: I20a249c47b58292125476bc44b2372ca959509e3
    Closes-Bug: #1468990
    (cherry picked from commit 73845d564c910bb9113a3ba5963b368384efbaad)

commit a17d97fc00d7467e9128f9691d3409636ce1e9b4
Author: Miguel Angel Ajo <email address hidden>
Date: Tue Aug 11 16:47:23 2015 +0200

    Update documentation acording to last QoS/OvS changes

    Cha...

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (feature/pecan)

Fix proposed to branch: feature/pecan
Review: https://review.openstack.org/218710

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (feature/pecan)
Download full text (155.6 KiB)

Reviewed: https://review.openstack.org/218710
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=2c5f44e1b3bd4ed8a0b7232fd293b576cc8c1c87
Submitter: Jenkins
Branch: feature/pecan

commit f35d1c5c50dccbef1a2e079f967b82f0df0e22e9
Author: Adelina Tuvenie <email address hidden>
Date: Thu Aug 27 02:27:28 2015 -0700

    Fixes wrong neutron Hyper-V Agent name in constants

    Change Id03fb147e11541be309c1cd22ce27e70fadc28b5 moved the
    AGENT_TYPE_HYPERV constant from common.constants to
    plugins.ml2.drivers.hyperv.constants but change the value of the
    constant from 'HyperV agent' to 'hyperv'. This patch changes
    the name back to 'HyperV agent'

    Change-Id: If74b4b2a84811e266c8b12e70bf6bfe74ed4ea21
    Partial-Bug: #1487598

commit de604de334854e2eb6b4312ff57920564cbd4459
Author: OpenStack Proposal Bot <email address hidden>
Date: Sun Aug 30 01:39:06 2015 +0000

    Updated from global requirements

    Change-Id: Ie52aa3b59784722806726e4046bd07f4a4d97328

commit f0415ac20eaf5ab4abb9bd4839bf6d04ceee85d0
Author: armando-migliaccio <email address hidden>
Date: Fri Aug 28 13:53:04 2015 -0700

    Revert "Add support for unaddressed port"

    This implementation may expose a vulnerability where a malicious
    user can sieze the opportunity of a time window where a port
    may land unaddressed on a shared network, thus allowing him/her
    to suck up all the tenant traffic he/she wants....oh the shivers.

    This reverts commit d4c52b7f5a36a103a92bf9dcda7f371959112292.

    Change-Id: I7ebdaa8d3defa80eab90e460fde541a5bdd8864c

commit 013fdcd2a6d45dbe4de5d6e7077e5e9b60985ef9
Author: Assaf Muller <email address hidden>
Date: Fri Aug 28 16:41:07 2015 -0400

    Improve logging upon failure in iptables functional tests

    This will help us nail down a more accurate and efficient logstash
    query.

    Change-Id: Iee4238e358f7b056e373c7be8d6aa3202117a680
    Related-Bug: #1478847

commit 622dea818d851224a43d5276a81d5ce8a6eebb76
Author: Ivar Lazzaro <email address hidden>
Date: Mon Aug 17 17:17:42 2015 -0700

    handle gw_info outside of the db transaction on router creation

    Move the gateway interface creation outside the DB transaction
    to avoid lock timeout.

    Change-Id: I5a78d7f32e8ca912016978105221d5f34618af19
    Closes-bug: 1485809

commit 5b27d290a0a95f6247fc5a0fe6da1e7d905e6b2d
Author: Assaf Muller <email address hidden>
Date: Wed Aug 26 10:07:03 2015 -0400

    Remove ml2 resource extension success logging

    This is the cause of a tremendous amount of logs, for no
    perceivable gain. A normal dvr run in the gate shows this debug
    message around 120K times, which is way too much.

    Closes-Bug: #1489952

    Change-Id: I26fca8515d866a7cc1638d07fa33bc04479ae221

commit 8d3faf549cba2f58c872ef4121b2481e73464010
Author: huangpengtao <email address hidden>
Date: Fri Aug 28 23:20:46 2015 +0800

    Replace "prt" variable by "port"

    the local variable prt is meaningless,
    and port is used popular.

    Change-Id: I20849102cf5b4d84433c46791b4b1e2a22dc4739

commit ee374e7a5f4dea538fcd942f5...

Thierry Carrez (ttx)
Changed in neutron:
milestone: liberty-2 → 7.0.0
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.