← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1795482] [NEW] Deleting network namespaces sometimes fails in check/gate queue with ENOENT

 

Public bug reported:

I have seen the fullstack tests sometimes fail, complaining that the
namespace doesn't exist.  An example is here:

http://logs.openstack.org/79/604179/1/check/neutron-fullstack-
python36/9b41cd5/logs/testr_results.html.gz

End of stack trace for reference:

 File "/opt/stack/new/neutron/neutron/tests/fullstack/resources/process.py", line 354, in clean_dhcp_namespaces
    ip_lib.delete_network_namespace(namespace)
  File "/opt/stack/new/neutron/neutron/agent/linux/ip_lib.py", line 1103, in delete_network_namespace
    privileged.remove_netns(namespace, **kwargs)
  File "/opt/stack/new/neutron/.tox/dsvm-fullstack-python35/lib/python3.5/site-packages/oslo_privsep/priv_context.py", line 207, in _wrap
    return self.channel.remote_call(name, args, kwargs)
  File "/opt/stack/new/neutron/.tox/dsvm-fullstack-python35/lib/python3.5/site-packages/oslo_privsep/daemon.py", line 202, in remote_call
    raise exc_type(*result[2])
FileNotFoundError: [Errno 2] No such file or directory

While some callers check for RuntimeError, none check for this OSError
errno.ENOENT case.

In this case, I don't believe we should be returning an error at all,
since an asynchronous event could have deleted the namespace, and since
it's no longer there we are in the desired state.

This will help with some of the recent issues we've had getting code
merged.

** Affects: neutron
     Importance: High
     Assignee: Brian Haley (brian-haley)
         Status: In Progress

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

Title:
  Deleting network namespaces sometimes fails in check/gate queue with
  ENOENT

Status in neutron:
  In Progress

Bug description:
  I have seen the fullstack tests sometimes fail, complaining that the
  namespace doesn't exist.  An example is here:

  http://logs.openstack.org/79/604179/1/check/neutron-fullstack-
  python36/9b41cd5/logs/testr_results.html.gz

  End of stack trace for reference:

   File "/opt/stack/new/neutron/neutron/tests/fullstack/resources/process.py", line 354, in clean_dhcp_namespaces
      ip_lib.delete_network_namespace(namespace)
    File "/opt/stack/new/neutron/neutron/agent/linux/ip_lib.py", line 1103, in delete_network_namespace
      privileged.remove_netns(namespace, **kwargs)
    File "/opt/stack/new/neutron/.tox/dsvm-fullstack-python35/lib/python3.5/site-packages/oslo_privsep/priv_context.py", line 207, in _wrap
      return self.channel.remote_call(name, args, kwargs)
    File "/opt/stack/new/neutron/.tox/dsvm-fullstack-python35/lib/python3.5/site-packages/oslo_privsep/daemon.py", line 202, in remote_call
      raise exc_type(*result[2])
  FileNotFoundError: [Errno 2] No such file or directory

  While some callers check for RuntimeError, none check for this OSError
  errno.ENOENT case.

  In this case, I don't believe we should be returning an error at all,
  since an asynchronous event could have deleted the namespace, and
  since it's no longer there we are in the desired state.

  This will help with some of the recent issues we've had getting code
  merged.

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


Follow ups