← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1637993] Re: Getting link attributes via IPDevice fails for interfaces with long names on xenial

 

Reviewed:  https://review.openstack.org/391808
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=0140a183dc0d5610f51badae82a16c4c44ff9885
Submitter: Jenkins
Branch:    master

commit 0140a183dc0d5610f51badae82a16c4c44ff9885
Author: Omer Anson <omer.anson@xxxxxxxxxxxxxxxx>
Date:   Mon Oct 31 08:52:43 2016 +0200

    Truncate IPDevice's name to interface max size
    
    An interface's name is limited to INTERFACE_MAX_SIZE. In some cases, IP
    utils truncate this name automatically. In Ubuntu Xenial, ip link
    returns an error instead of this behaviour.
    
    This change truncates the device's name upon read (The full name is
    still stored on the object). This way, the code does not rely on IP
    utils to do the truncation. This solves the error in the test.
    
    Change-Id: I41b226e4b52239b861e2b6e806296025502b9b60
    Closes-Bug: 1637993


** Changed in: neutron
       Status: In Progress => Fix Released

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

Title:
  Getting link attributes via IPDevice fails for interfaces with long
  names on xenial

Status in neutron:
  Fix Released

Bug description:
  Getting link attributes via IPDevice fails for interfaces with long
  names on xenial. This can be seen in the functional test
  test_get_device_mac_too_long_name, which fails on xenial. Reproducible
  on the gate with 'check experimental'.

  The output from the failed test is:
  ft1.1: neutron.tests.functional.agent.linux.test_ip_lib.IpLibTestCase.test_get_device_mac_too_long_name_StringException: Empty attachments:
    stderr
    stdout

  pythonlogging:'': {{{
  DEBUG [stevedore.extension] found extension EntryPoint.parse('pika = oslo_messaging._drivers.impl_pika:PikaDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('kombu = oslo_messaging._drivers.impl_rabbit:RabbitDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('fake = oslo_messaging._drivers.impl_fake:FakeDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('zmq = oslo_messaging._drivers.impl_zmq:ZmqDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('amqp = oslo_messaging._drivers.impl_amqp1:ProtonDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('rabbit = oslo_messaging._drivers.impl_rabbit:RabbitDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('kafka = oslo_messaging._drivers.impl_kafka:KafkaDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('pika = oslo_messaging._drivers.impl_pika:PikaDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('kombu = oslo_messaging._drivers.impl_rabbit:RabbitDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('fake = oslo_messaging._drivers.impl_fake:FakeDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('zmq = oslo_messaging._drivers.impl_zmq:ZmqDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('amqp = oslo_messaging._drivers.impl_amqp1:ProtonDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('rabbit = oslo_messaging._drivers.impl_rabbit:RabbitDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('kafka = oslo_messaging._drivers.impl_kafka:KafkaDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('pika = oslo_messaging._drivers.impl_pika:PikaDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('kombu = oslo_messaging._drivers.impl_rabbit:RabbitDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('fake = oslo_messaging._drivers.impl_fake:FakeDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('zmq = oslo_messaging._drivers.impl_zmq:ZmqDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('amqp = oslo_messaging._drivers.impl_amqp1:ProtonDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('rabbit = oslo_messaging._drivers.impl_rabbit:RabbitDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('kafka = oslo_messaging._drivers.impl_kafka:KafkaDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('pika = oslo_messaging._drivers.impl_pika:PikaDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('kombu = oslo_messaging._drivers.impl_rabbit:RabbitDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('fake = oslo_messaging._drivers.impl_fake:FakeDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('zmq = oslo_messaging._drivers.impl_zmq:ZmqDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('amqp = oslo_messaging._drivers.impl_amqp1:ProtonDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('rabbit = oslo_messaging._drivers.impl_rabbit:RabbitDriver')
     DEBUG [stevedore.extension] found extension EntryPoint.parse('kafka = oslo_messaging._drivers.impl_kafka:KafkaDriver')
     DEBUG [oslo_policy._cache_handler] Reloading cached file /opt/stack/new/neutron/neutron/tests/etc/policy.json
     DEBUG [oslo_policy.policy] Reloaded policy file: /opt/stack/new/neutron/neutron/tests/etc/policy.json
   WARNING [oslo_policy.policy] Policies ['update_rbac_policy:target_tenant'] are part of a cyclical reference.
  }}}

  Traceback (most recent call last):
    File "neutron/tests/base.py", line 125, in func
      return f(self, *args, **kwargs)
    File "neutron/tests/functional/agent/linux/test_ip_lib.py", line 177, in test_get_device_mac_too_long_name
      device = self.manage_device(attr)
    File "neutron/tests/functional/agent/linux/test_ip_lib.py", line 83, in manage_device
      namespace=attr.namespace)
    File "neutron/agent/linux/interface.py", line 113, in init_l3
      default_ipv6_lla = ip_lib.get_ipv6_lladdr(device.link.address)
    File "neutron/agent/linux/ip_lib.py", line 531, in address
      return self.attributes.get('link/ether')
    File "neutron/agent/linux/ip_lib.py", line 555, in attributes
      return self._parse_line(self._run(['o'], ('show', self.name)))
    File "neutron/agent/linux/ip_lib.py", line 361, in _run
      return self._parent._run(options, self.COMMAND, args)
    File "neutron/agent/linux/ip_lib.py", line 81, in _run
      return self._as_root(options, command, args)
    File "neutron/agent/linux/ip_lib.py", line 96, in _as_root
      log_fail_as_error=self.log_fail_as_error)
    File "neutron/agent/linux/ip_lib.py", line 105, in _execute
      log_fail_as_error=log_fail_as_error)
    File "neutron/agent/linux/utils.py", line 139, in execute
      raise RuntimeError(msg)
  RuntimeError: Exit code: 255; Stdin: ; Stdout: ; Stderr: Error: argument "teste330f1130ac45f8d" is wrong: "name" too long

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