Openstack Neutron is not sending complete data during qos-policy-name update

Bug #1734136 reported by Vamsi Krishna
18
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Medium
Slawek Kaplonski

Bug Description

1.create a qos-policy with bandwidth limit rule and dscp marking rule

2.update the qos-policy-name

3.After updating the qos-policy name, bandwidth limit rules and dscp marking rules are missing. Only the qos-policy-name is getting updated.

Openstack neutron is not sending bandwidth_limit_rules & dscp_marking_rules along with the updated qos policy name when I have updated the qos-policy-name from Vamsi to Krish.

Expected behavior is to have the updated policy name along with bandwidth_limit_rules & dscp_marking_rules same as that in old qos-policy-name.

Version: Stable/Newton
192.168.56.102 --> Openstack
192.168.56.1 --> ODL

JavaScript Object Notation: application/json
    Object
        Member Key: policy
            Object
                Member Key: bandwidth_limit_rules
                    Array
                    Key: bandwidth_limit_rules
                Member Key: name
                    String value: Krish
                    Key: name
                Member Key: created_at
                    String value: 2017-11-20T19:27:06Z
                    Key: created_at
                Member Key: updated_at
                    String value: 2017-11-20T19:27:15Z
                    Key: updated_at
                Member Key: dscp_marking_rules
                    Array
                    Key: dscp_marking_rules
                Member Key: revision_number
                    Number value: 4
                    Key: revision_number
                Member Key: shared
                    False value
                    Key: shared
                Member Key: project_id
                    String value: eacd04d3ff4b4e1d9dc2f5282edbb9e0
                    Key: project_id
                Member Key: id
                    String value: 066fd21e-2041-43f6-956a-6bec0948bf15
                    Key: id
                Member Key: description
                    String value:
                    Key: description
            Key: policy

Attached the wireshark cap for this issue.

Revision history for this message
Vamsi Krishna (vamsikrishna601) wrote :
tags: added: qos
Revision history for this message
Slawek Kaplonski (slaweq) wrote :

Hi,

I don't know OVN but I tried to reproduce this issue with Neutron and Linuxbridge agent (because I had such deployment running but L2 agent is not important here IMO) and I couldn't reproduce it.
I create qos policy with bandwidth limit rule and dscp marking rule and tired to update it's name. On L2 agent side I got updated QoS policy together with rules which belongs to it.
I tried it on master.
I will try on Ocata also but Newton is EOL now.
Can You provide maybe some more details what calls are You doing to Neutron-server and where You expect to get this QoS policy with rules exactly?

Revision history for this message
Vamsi Krishna (vamsikrishna601) wrote :

I am using Newton if possible try on Newton else try on Ocata to see if issue exists on Ocata ??

I am suspecting below files might need a code fix:

neutron/services/qos/qos_plugin.py

neutron/plugins/ml2/plugin.py

Please find the attached logs to see the usecase details.

Revision history for this message
Vamsi Krishna (vamsikrishna601) wrote :
Revision history for this message
zhaobo (zhaobo6) wrote :

Did it cause by versioned_qos_obj initial? I don't familiar with that part.
Any updates ?

Revision history for this message
Slawek Kaplonski (slaweq) wrote :

I checked it on Ocata and it looks that it is an issue there.
It looks that it is like Vamsi Krishna told me that patch https://review.openstack.org/#/c/469282
To be very strict only change in https://review.openstack.org/#/c/469282/5/neutron/services/qos/qos_plugin.py fixes this issue.
I will propose it to stable/ocata branch as it is already fixed in stable/pike and master.

tags: added: ocata-backport-potential
Changed in neutron:
importance: Undecided → Medium
status: New → Confirmed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to neutron (stable/ocata)

Related fix proposed to branch: stable/ocata
Review: https://review.openstack.org/523133

Changed in neutron:
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to neutron (stable/ocata)

Reviewed: https://review.openstack.org/523133
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=29aafaf5f982e9df794ef54a9efb54fa758d7432
Submitter: Zuul
Branch: stable/ocata

commit 29aafaf5f982e9df794ef54a9efb54fa758d7432
Author: Sławek Kapłoński <email address hidden>
Date: Mon Nov 27 14:29:58 2017 +0000

    Don't create new QoS policy during update operation

    The QoS plugin erroneously creates a new policy when updating
    an existing one.
    This causes the loss of previously set attributes that are
    not passed in the update call.

    This patch fixes this issue by getting existing qos policy object
    instead of creating a new one for update.

    This issue is already fixed in Pike branch with patch:
    I57011bd4d40479855203061554090d19bb668960

    Change-Id: I6f5a925084bb70b56e66d673eac2febdb38e0b34
    Related-Bug: #1734136

tags: added: in-stable-ocata
Changed in neutron:
status: In Progress → Fix Committed
assignee: nobody → Slawek Kaplonski (slaweq)
Changed in neutron:
status: Fix Committed → Fix Released
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.