Comment 2 for bug 1990561

Revision history for this message
Anton Kurbatov (akurbatov) wrote :

Hello Bence,
I am attaching my configs (configs.tar)
Of the essential in my opinion, I have the following:

1) I am using postgres DB database.

2) 10 neutron-server processes are running inside kolla-ansible docker CT:

/usr/bin/python3 /usr/bin/neutron-server --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini --config-file /etc/neutron/neutron_vpnaas.conf

[root@node1 ~]# docker exec -tiu root neutron_server bash
(neutron-server)[root@node1 /]# ps axf | grep neutron-server | grep -v grep | wc -l
11
(neutron-server)[root@node1 /]# grep workers /etc/neutron/neutron.conf
api_workers = 4
rpc_workers = 4
metadata_workers = 1
(neutron-server)[root@node1 /]#

Bug is easy to reproduce if you do a little hack (and if you have 2+ neutron-servers processes that can handle requests):

diff --git a/neutron/plugins/ml2/plugin.py b/neutron/plugins/ml2/plugin.py
index ea54f8f1c3..74226d112a 100644
--- a/neutron/plugins/ml2/plugin.py
+++ b/neutron/plugins/ml2/plugin.py
@@ -1211,6 +1211,9 @@ class Ml2Plugin(db_base_plugin_v2.NeutronDbPluginV2,
             for net in nets_db:
                 net_data.append(self._make_network_dict(net, context=context))

+ import time
+ time.sleep(3)
+
             self.type_manager.extend_networks_dict_provider(context, net_data)
             nets = self._filter_nets_provider(context, net_data, filters)
         return [db_utils.resource_fields(net, fields) for net in nets]

And then:

[root@node1 ~]# net_id=$(openstack network create test-net --provider-segment 200 --provider-network-type vxlan -c id -f value); openstack network list --provider-segment 100 & openstack network delete $net_id
[1] 628975
[root@node1 ~]# +--------------------------------------+----------+---------+
| ID | Name | Subnets |
+--------------------------------------+----------+---------+
| 9249ed81-865e-44d2-bc22-c5d6c47786e5 | test-net | |
+--------------------------------------+----------+---------+

[1]+ Done openstack --insecure network list --provider-segment 100
[root@node1 ~]#