yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #90807
[Bug 2000078] [NEW] neutron-remove-duplicated-port-bindings doesn't remove binding_levels
Public bug reported:
I'm trying to do an INACTIVE port binding cleanup using neutron-remove-duplicated-port-bindings tool from #1979072
But I found an issue with this help tool: it doens't remove entries from the ml2_port_binding_levels table that still blocks new port binding to the host.
Demo:
1)
create VM and bind a port to another host:
$ openstack port create my-port --network private --device-owner compute:test
-> get port port ID -> 075c4058-2933-4f6f-90a9-f754e81cef52
$ curl -k -H "x-auth-token: $t" -H "Content-Type: application/json" -X POST http://10.136.16.186:9696/networking/v2.0/ports/075c4058-2933-4f6f-90a9-f754e81cef52/bindings -d '{"binding": {"host": "ak-dev2"}}'
MariaDB [neutron]> select port_id,host,vif_type,status from ml2_port_bindings where port_id='075c4058-2933-4f6f-90a9-f754e81cef52';
+--------------------------------------+---------+----------+----------+
| port_id | host | vif_type | status |
+--------------------------------------+---------+----------+----------+
| 075c4058-2933-4f6f-90a9-f754e81cef52 | ak-dev1 | ovs | ACTIVE |
| 075c4058-2933-4f6f-90a9-f754e81cef52 | ak-dev2 | ovs | INACTIVE |
+--------------------------------------+---------+----------+----------+
2 rows in set (0.000 sec)
MariaDB [neutron]> select * from ml2_port_binding_levels where port_id='075c4058-2933-4f6f-90a9-f754e81cef52';
+--------------------------------------+---------+-------+-------------+--------------------------------------+
| port_id | host | level | driver | segment_id |
+--------------------------------------+---------+-------+-------------+--------------------------------------+
| 075c4058-2933-4f6f-90a9-f754e81cef52 | ak-dev1 | 0 | openvswitch | 2250e731-0046-46ae-8cf0-8da7fd3aad98 |
| 075c4058-2933-4f6f-90a9-f754e81cef52 | ak-dev2 | 0 | openvswitch | 2250e731-0046-46ae-8cf0-8da7fd3aad98 |
+--------------------------------------+---------+-------+-------------+--------------------------------------+
2 rows in set (0.000 sec)
MariaDB [neutron]>
2) remove INACTIVE port bindings via neutron-remove-duplicated-port-bindings:
$ neutron-remove-duplicated-port-bindings --config-file /etc/neutron/neutron.conf
MariaDB [neutron]> select port_id,host,vif_type,status from ml2_port_bindings where port_id='075c4058-2933-4f6f-90a9-f754e81cef52';
+--------------------------------------+---------+----------+--------+
| port_id | host | vif_type | status |
+--------------------------------------+---------+----------+--------+
| 075c4058-2933-4f6f-90a9-f754e81cef52 | ak-dev1 | ovs | ACTIVE |
+--------------------------------------+---------+----------+--------+
1 row in set (0.000 sec)
MariaDB [neutron]> select * from ml2_port_binding_levels where port_id='075c4058-2933-4f6f-90a9-f754e81cef52';
+--------------------------------------+---------+-------+-------------+--------------------------------------+
| port_id | host | level | driver | segment_id |
+--------------------------------------+---------+-------+-------------+--------------------------------------+
| 075c4058-2933-4f6f-90a9-f754e81cef52 | ak-dev1 | 0 | openvswitch | 2250e731-0046-46ae-8cf0-8da7fd3aad98 |
| 075c4058-2933-4f6f-90a9-f754e81cef52 | ak-dev2 | 0 | openvswitch | 2250e731-0046-46ae-8cf0-8da7fd3aad98 |
+--------------------------------------+---------+-------+-------------+--------------------------------------+
2 rows in set (0.000 sec)
MariaDB [neutron]>
3) Create the port binding again. It fails:
$ # curl -k -H "x-auth-token: $t" -H "Content-Type: application/json" -X POST http://10.136.16.186:9696/networking/v2.0/ports/075c4058-2933-4f6f-90a9-f754e81cef52/bindings -d '{"binding": {"host": "ak-dev2"}}'
{"NeutronError": {"type": "NeutronDbObjectDuplicateEntry", "message": "Failed to create a duplicate PortBindingLevel: for attribute(s) ['PRIMARY'] with value(s) 075c4058-2933-4f6f-90a9-f754e81cef52-ak-dev2-0", "detail": ""}}
** Affects: neutron
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/2000078
Title:
neutron-remove-duplicated-port-bindings doesn't remove binding_levels
Status in neutron:
New
Bug description:
I'm trying to do an INACTIVE port binding cleanup using neutron-remove-duplicated-port-bindings tool from #1979072
But I found an issue with this help tool: it doens't remove entries from the ml2_port_binding_levels table that still blocks new port binding to the host.
Demo:
1)
create VM and bind a port to another host:
$ openstack port create my-port --network private --device-owner compute:test
-> get port port ID -> 075c4058-2933-4f6f-90a9-f754e81cef52
$ curl -k -H "x-auth-token: $t" -H "Content-Type: application/json" -X POST http://10.136.16.186:9696/networking/v2.0/ports/075c4058-2933-4f6f-90a9-f754e81cef52/bindings -d '{"binding": {"host": "ak-dev2"}}'
MariaDB [neutron]> select port_id,host,vif_type,status from ml2_port_bindings where port_id='075c4058-2933-4f6f-90a9-f754e81cef52';
+--------------------------------------+---------+----------+----------+
| port_id | host | vif_type | status |
+--------------------------------------+---------+----------+----------+
| 075c4058-2933-4f6f-90a9-f754e81cef52 | ak-dev1 | ovs | ACTIVE |
| 075c4058-2933-4f6f-90a9-f754e81cef52 | ak-dev2 | ovs | INACTIVE |
+--------------------------------------+---------+----------+----------+
2 rows in set (0.000 sec)
MariaDB [neutron]> select * from ml2_port_binding_levels where port_id='075c4058-2933-4f6f-90a9-f754e81cef52';
+--------------------------------------+---------+-------+-------------+--------------------------------------+
| port_id | host | level | driver | segment_id |
+--------------------------------------+---------+-------+-------------+--------------------------------------+
| 075c4058-2933-4f6f-90a9-f754e81cef52 | ak-dev1 | 0 | openvswitch | 2250e731-0046-46ae-8cf0-8da7fd3aad98 |
| 075c4058-2933-4f6f-90a9-f754e81cef52 | ak-dev2 | 0 | openvswitch | 2250e731-0046-46ae-8cf0-8da7fd3aad98 |
+--------------------------------------+---------+-------+-------------+--------------------------------------+
2 rows in set (0.000 sec)
MariaDB [neutron]>
2) remove INACTIVE port bindings via neutron-remove-duplicated-port-bindings:
$ neutron-remove-duplicated-port-bindings --config-file /etc/neutron/neutron.conf
MariaDB [neutron]> select port_id,host,vif_type,status from ml2_port_bindings where port_id='075c4058-2933-4f6f-90a9-f754e81cef52';
+--------------------------------------+---------+----------+--------+
| port_id | host | vif_type | status |
+--------------------------------------+---------+----------+--------+
| 075c4058-2933-4f6f-90a9-f754e81cef52 | ak-dev1 | ovs | ACTIVE |
+--------------------------------------+---------+----------+--------+
1 row in set (0.000 sec)
MariaDB [neutron]> select * from ml2_port_binding_levels where port_id='075c4058-2933-4f6f-90a9-f754e81cef52';
+--------------------------------------+---------+-------+-------------+--------------------------------------+
| port_id | host | level | driver | segment_id |
+--------------------------------------+---------+-------+-------------+--------------------------------------+
| 075c4058-2933-4f6f-90a9-f754e81cef52 | ak-dev1 | 0 | openvswitch | 2250e731-0046-46ae-8cf0-8da7fd3aad98 |
| 075c4058-2933-4f6f-90a9-f754e81cef52 | ak-dev2 | 0 | openvswitch | 2250e731-0046-46ae-8cf0-8da7fd3aad98 |
+--------------------------------------+---------+-------+-------------+--------------------------------------+
2 rows in set (0.000 sec)
MariaDB [neutron]>
3) Create the port binding again. It fails:
$ # curl -k -H "x-auth-token: $t" -H "Content-Type: application/json" -X POST http://10.136.16.186:9696/networking/v2.0/ports/075c4058-2933-4f6f-90a9-f754e81cef52/bindings -d '{"binding": {"host": "ak-dev2"}}'
{"NeutronError": {"type": "NeutronDbObjectDuplicateEntry", "message": "Failed to create a duplicate PortBindingLevel: for attribute(s) ['PRIMARY'] with value(s) 075c4058-2933-4f6f-90a9-f754e81cef52-ak-dev2-0", "detail": ""}}
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/2000078/+subscriptions
Follow ups