← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1263686] [NEW] Race between list_networks and delete_network in OVS plugin

 

Public bug reported:

When listing networks, OVS plugin fetches networks bindings via
additional per-network db-query.

In case some network (and its binding) from the list is getting deleted
in the process of extending networks dict, _extend_network_dict_provider
throws an exception:

TRACE neutron.api.v2.resource Traceback (most recent call last):
TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/api/v2/resource.py", line 84, in resource
TRACE neutron.api.v2.resource     result = method(request=request, **args)
TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/api/v2/base.py", line 279, in index
TRACE neutron.api.v2.resource     return self._items(request, True, parent_id)
TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/api/v2/base.py", line 233, in _items
TRACE neutron.api.v2.resource     obj_list = obj_getter(request.context, **kwargs)
TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/plugins/openvswitch/ovs_neutron_plugin.py", line 567, in get_networks
TRACE neutron.api.v2.resource     self._extend_network_dict_provider(context, net)
TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/plugins/openvswitch/ovs_neutron_plugin.py", line 381, in _extend_network_dict_provider
TRACE neutron.api.v2.resource     network[provider.NETWORK_TYPE] = binding.network_type
TRACE neutron.api.v2.resource AttributeError: 'NoneType' object has no attribute 'network_type'

This issue is reproducible easily with
tempest.api.network.test_networks.BulkNetworkOps

** Affects: neutron
     Importance: Medium
     Assignee: Eugene Nikanorov (enikanorov)
         Status: New


** Tags: db ovs

** Tags added: db ovs

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

Title:
  Race between list_networks and delete_network in OVS plugin

Status in OpenStack Neutron (virtual network service):
  New

Bug description:
  When listing networks, OVS plugin fetches networks bindings via
  additional per-network db-query.

  In case some network (and its binding) from the list is getting
  deleted in the process of extending networks dict,
  _extend_network_dict_provider throws an exception:

  TRACE neutron.api.v2.resource Traceback (most recent call last):
  TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/api/v2/resource.py", line 84, in resource
  TRACE neutron.api.v2.resource     result = method(request=request, **args)
  TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/api/v2/base.py", line 279, in index
  TRACE neutron.api.v2.resource     return self._items(request, True, parent_id)
  TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/api/v2/base.py", line 233, in _items
  TRACE neutron.api.v2.resource     obj_list = obj_getter(request.context, **kwargs)
  TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/plugins/openvswitch/ovs_neutron_plugin.py", line 567, in get_networks
  TRACE neutron.api.v2.resource     self._extend_network_dict_provider(context, net)
  TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/plugins/openvswitch/ovs_neutron_plugin.py", line 381, in _extend_network_dict_provider
  TRACE neutron.api.v2.resource     network[provider.NETWORK_TYPE] = binding.network_type
  TRACE neutron.api.v2.resource AttributeError: 'NoneType' object has no attribute 'network_type'

  This issue is reproducible easily with
  tempest.api.network.test_networks.BulkNetworkOps

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


Follow ups

References