bandwidth resource allocation is deleted from placement during unrelated port update
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Fix Released
|
High
|
Lajos Katona |
Bug Description
Neutron deletes the bandwidth resource allocation in placement if the port is updated even though the qos policy of the port is not changed.
Reproduction:
1) Create a all in one devstack deployment from master
2) Create qos a port with qos min bandwidth policy
openstack network create net0 \
--provider-
--provider-
--provider-segment 100 \
##
openstack subnet create subnet0 \
--network net0 \
--subnet-range 10.0.4.0/24 \
##
openstack network qos policy create qp0
openstack network qos rule create qp0 \
--type minimum-bandwidth \
--min-kbps 1000 \
--egress \
##
openstack network qos rule create qp0 \
--type minimum-bandwidth \
--min-kbps 1000 \
--ingress \
##
openstack port create port-normal-qos \
--network net0 \
--vnic-type normal \
--qos-policy qp0 \
##
3) Boot a server with that port
openstack --os-compute-
4) Check the resource allocation of the server in placement
openstack resource provider allocation show cf5809b6-
+------
| resource_provider | generation | resources |
+------
| 1110cf59-
| 7b122d5c-
+------
5) Update the description of the port
openstack port set --description "this is my port" port-normal-qos
6) Check the resource allocation again
openstack resource provider allocation show cf5809b6-
+------
| resource_provider | generation | resources |
+------
| 7b122d5c-
+------
Expected behavior:
The resource allocation is not changed during description update
Actual behavior:
The bandwidth resource allocation is deleted in placement
Note that changing the binding:profile also has the same effect, but changing the name of the port does not trigger the same problem.
tags: | added: qos |
tags: | added: placement |
description: | updated |
Changed in neutron: | |
status: | New → Confirmed |
assignee: | nobody → Lajos Katona (lajos-katona) |
importance: | Undecided → High |
tags: | added: neutron-proactive-backport-potential |
tags: | removed: neutron-proactive-backport-potential placement |
As a consequence of the above problem when the server later deleted neutron fails to unbind the port so the port remains in use.
The only visible problem in the neutron log during the delete:
Oct 08 08:27:40 aio neutron- server[ 843]: DEBUG neutron_ lib.callbacks. manager [req-61512f24- 826a-424a- a866-74915d1c9d 9b req-3fb1ce31- 2470-4e51- b283-4928a2a87b 9c service neutron] Callback neutron. services. qos.qos_ plugin. QoSPlugin. _check_ port_for_ placement_ allocation_ change- -92233720368547 57806 raised Resource provider 1110cf59- cabf-526c- bacc-08baabbac6 92 for cf5809b6- 1dbe-43d5- 8270-b734255a94 6e does not exist {{(pid=2968) _notify_loop /opt/stack/ neutron- lib/neutron_ lib/callbacks/ manager. py:210} }