[Bug 1374663] Re: agent/linux/ip_lib.py does not correctly handle output from 'iproute2' command

Shane Peters 1374663 at bugs.launchpad.net
Tue Nov 1 20:57:32 UTC 2016


** Description changed:

- The get_devices() method in neutron/agent/linux/ip_lib.py chokes if
- 'iproute2' presents interface names containing '@', such as ipip
- tunnels:
+ [Impact]
  
-     513: tunl0 at NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default 
-         link/ipip 0.0.0.0 brd 0.0.0.0
+  * The get_devices() method in neutron/agent/linux/ip_lib.py chokes if 'iproute2' presents interface names containing '@', such as ipip tunnels and macvlan devices:
+   
+ 		tunl0 at NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default
+ 		clone at eth0: <BROADCAST,MULTICAST> mtu 1454 qdisc noop state DOWN mode DEFAULT
+         
+   * The mere presence of one of the above interface names will cause the
+     code to fail with:
  
- And macvlan devices:
+ 		RuntimeError:
+ 		Command: ['ip', 'addr', 'show', 'tunl0 at NONE']
+ 		Exit code: 1
+ 		Stdout: ''
+ 		Stderr: 'Device "tunl0 at NONE" does not exist.\n'
  
-     4: clone at eth0: <BROADCAST,MULTICAST> mtu 1454 qdisc noop state DOWN mode DEFAULT group default 
-         link/ether c6:dd:66:a5:f6:5c brd ff:ff:ff:ff:ff:ff
  
- Consider the follow sample code:
+ [Test Case]
  
-     from neutron.agent.linux.ip_lib import IPWrapper
+  * This has been seen in the vpn_agent.log after upgrading to a xenial kernel (4.4.0-45-generic) in a trusty/icehouse environment.
+    
+     /var/log/neutron/vpn_agent.log:
+     ERROR neutron.agent.linux.interface [-] Failed unplugging interface   'qg-e75da35-63 at if10' 
  
-     ip = IPWrapper()
-     for iface in ip.get_devices():
-         print iface.name, iface.addr.list()
  
- The mere presence of one of the above interface names will cause the
- code to fail with:
+ [Regression Potential]
  
-     RuntimeError: 
-     Command: ['ip', 'addr', 'show', 'tunl0 at NONE']
-     Exit code: 1
-     Stdout: ''
-     Stderr: 'Device "tunl0 at NONE" does not exist.\n'
+   * iproute2 is still used, however, a search path was added
+ (/sys/class/net) which returns the interfaces without the '@'.
  
- This can cause failures in, e.g.,
- neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py, which
- performs almost exactly the same iteration in the
- get_interface_by_ip() method.
+   * This has been fixed since Kilo so there is minimal regression
+ potential.
+ 
+ 
+ [ Other Info ]
+ 
+   *

-- 
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to neutron in Ubuntu.
https://bugs.launchpad.net/bugs/1374663

Title:
  agent/linux/ip_lib.py does not correctly handle output from 'iproute2'
  command

Status in Ubuntu Cloud Archive:
  New
Status in neutron:
  Fix Released
Status in neutron package in Ubuntu:
  New

Bug description:
  [Impact]

   * The get_devices() method in neutron/agent/linux/ip_lib.py chokes if 'iproute2' presents interface names containing '@', such as ipip tunnels and macvlan devices:
    
  		tunl0 at NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default
  		clone at eth0: <BROADCAST,MULTICAST> mtu 1454 qdisc noop state DOWN mode DEFAULT
          
    * The mere presence of one of the above interface names will cause the
      code to fail with:

  		RuntimeError:
  		Command: ['ip', 'addr', 'show', 'tunl0 at NONE']
  		Exit code: 1
  		Stdout: ''
  		Stderr: 'Device "tunl0 at NONE" does not exist.\n'

  
  [Test Case]

   * This has been seen in the vpn_agent.log after upgrading to a xenial kernel (4.4.0-45-generic) in a trusty/icehouse environment.
     
      /var/log/neutron/vpn_agent.log:
      ERROR neutron.agent.linux.interface [-] Failed unplugging interface   'qg-e75da35-63 at if10' 

  
  [Regression Potential]

    * iproute2 is still used, however, a search path was added
  (/sys/class/net) which returns the interfaces without the '@'.

    * This has been fixed since Kilo so there is minimal regression
  potential.

  
  [ Other Info ]

    *

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-archive/+bug/1374663/+subscriptions



More information about the Ubuntu-openstack-bugs mailing list