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
I believe all those xenial bugs should be High to reflect the deadline set by infra.