← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 2099706] [NEW] [OVN][QoS] QoS rule addition to an exiting net work policy only updates the first port

 

Public bug reported:

How to reproduce:
* Create a network.
* Add two ports to this network.
* Create a QoS policy.
* Assign the QoS policy to this network.
* Add a max-bw rule to this policy
--> Only one port of this network will receive the new added rule.

The method that updates a QoS policy when, for example, a new rule is
added, calls ``update_network`` [1] with a set of defined rules in a
dictionary. This method will call ``_update_port_qos_rules`` [2] with
this dictionary as an argument. The problem is that in [3], this
dictionary is modified when it should be used in a loop of calls for
other ports.

This argument ``qos_rules`` should not be changed; instead a copy should
be created.

[1]https://github.com/openstack/neutron/blob/8152b83384c45d48a7256dfb40a2eb06852d5295/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/extensions/qos.py#L519-L520
[2]https://github.com/openstack/neutron/blob/8152b83384c45d48a7256dfb40a2eb06852d5295/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/extensions/qos.py#L392-L393
[3]https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/extensions/qos.py#L309-L310

** Affects: neutron
     Importance: Medium
     Assignee: Rodolfo Alonso (rodolfo-alonso-hernandez)
         Status: Confirmed


** Tags: ovn qos

** Changed in: neutron
   Importance: Undecided => Medium

** Changed in: neutron
     Assignee: (unassigned) => Rodolfo Alonso (rodolfo-alonso-hernandez)

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

Title:
  [OVN][QoS] QoS rule addition to an exiting net work policy only
  updates the first port

Status in neutron:
  Confirmed

Bug description:
  How to reproduce:
  * Create a network.
  * Add two ports to this network.
  * Create a QoS policy.
  * Assign the QoS policy to this network.
  * Add a max-bw rule to this policy
  --> Only one port of this network will receive the new added rule.

  The method that updates a QoS policy when, for example, a new rule is
  added, calls ``update_network`` [1] with a set of defined rules in a
  dictionary. This method will call ``_update_port_qos_rules`` [2] with
  this dictionary as an argument. The problem is that in [3], this
  dictionary is modified when it should be used in a loop of calls for
  other ports.

  This argument ``qos_rules`` should not be changed; instead a copy
  should be created.

  [1]https://github.com/openstack/neutron/blob/8152b83384c45d48a7256dfb40a2eb06852d5295/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/extensions/qos.py#L519-L520
  [2]https://github.com/openstack/neutron/blob/8152b83384c45d48a7256dfb40a2eb06852d5295/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/extensions/qos.py#L392-L393
  [3]https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/extensions/qos.py#L309-L310

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



Follow ups