This bug is believed to be fixed in cloud-init in 17.1. If this is still a problem for you, please make a comment and set the state back to New
Thank you. ** Changed in: cloud-init Status: Fix Committed => Fix Released -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to cloud-init. https://bugs.launchpad.net/bugs/1692028 Title: duplicate mac address during config-drive configuration with LXD container on openstack Status in cloud-init: Fix Released Status in cloud-init package in Ubuntu: Fix Released Status in cloud-init source package in Xenial: Fix Released Status in cloud-init source package in Yakkety: Fix Released Status in cloud-init source package in Zesty: Fix Released Status in cloud-init source package in Artful: Fix Released Bug description: === Begin SRU Template === [Impact] When the 'ip_gre' module is loaded, the kernel creates two network devices 'gre0' and 'gretap0' that appear in all network namespaces. (For example, if you create an lxd container, and then load the ip_gre module from outside the container, the container will see 2 new network devices). The hardware address of these devices is 00:00:00:00:00 as seen below. # ( cd /sys/class/net/ && grep . gre*/address ) gre0/address:00:00:00:00 gretap0/address:00:00:00:00:00:00 This "duplicate" mac address caused cloud-init to raise a RuntimeError. The overall impact is that cloudinit's network rendering code will not work if the ip_gre module is loaded on the system. That will happen in some nova-lxd environments, but also anywhere where a user has loaded that module and is running lxc. [Test Case] 1.) load a module on your host sudo modprobe ip_gre 2.) Launch an instance in lxd. $ rel=xenial $ name=x1 $ lxc launch ubuntu-daily:$rel $name 3.) see the stack trace by running 'get_interfaces_by_mac()' in the guest. $ lxc exec $name -- \ python3 -c 'from cloudinit import net; print(net.get_interfaces_by_mac())' 4.) upgrade instance to proposed cloud-init $ lxc exec $name -- sh -c ' mirror=http://archive.ubuntu.com/ubuntu echo deb $mirror $(lsb_release -sc)-proposed main | tee /etc/apt/sources.list.d/proposed.list apt-get update -q apt-get install -qy cloud-init' $ lxc exec $name -- dpkg-query --show cloud-init 5.) see that get_interfaces_by_mac() no longer stack traces. $ lxc exec $name -- \ python3 -c 'from cloudinit import net; print(net.get_interfaces_by_mac())' A more complete test case is to load an image into nova-lxd with gre tunneling loaded on the host, but that is much more involved setup. [Regression Potential] Regression potential should be pretty low. We are simply ignoring network interfaces not named 'lo' that have a mac address of '00:00:00:00:00' [Other Info] Upstream commit at https://git.launchpad.net/cloud-init/commit/?id=2c0655feb9 === End SRU Template === Whilst testing the changes for nova-lxd to resolve issues with use of config-drive, I tripped over this issue; specifically the networking on a config-drive configured LXD instance never starts due to a duplicate MAC address on the lo and greptap0 devices. Cloud-init v. 0.7.9 running 'init' at Fri, 19 May 2017 13:41:00 +0000. Up 2.0 seconds. ci-info: ++++++++++++++++++++++++++++++++++++++++++++++++++++Net device info+++++++++++++++++++++++++++++++++++++++++++++++++++++ ci-info: +---------+-------+------------------------------+-----------+-------+-------------------------------------------------+ ci-info: | Device | Up | Address | Mask | Scope | Hw-Address | ci-info: +---------+-------+------------------------------+-----------+-------+-------------------------------------------------+ ci-info: | gretap0 | False | . | . | . | 00:00:00:00:00:00 | ci-info: | eth0 | True | . | . | . | fa:16:3e:1d:aa:ac | ci-info: | eth0 | True | fe80::f816:3eff:fe1d:aaac/64 | . | link | fa:16:3e:1d:aa:ac | ci-info: | lo | True | 127.0.0.1 | 255.0.0.0 | . | . | ci-info: | lo | True | ::1/128 | . | host | . | ci-info: | gre0 | False | . | . | . | 00-00-00-00-31-36-3a-33-00-00-00-00-00-00-00-00 | ci-info: +---------+-------+------------------------------+-----------+-------+-------------------------------------------------+ 2017-05-19 13:41:01,017 - util.py[WARNING]: failed stage init failed run of stage init ------------------------------------------------------------ Traceback (most recent call last): File "/usr/lib/python3/dist-packages/cloudinit/cmd/main.py", line 647, in status_wrapper ret = functor(name, args) File "/usr/lib/python3/dist-packages/cloudinit/cmd/main.py", line 365, in main_init init.apply_network_config(bring_up=bool(mode != sources.DSMODE_LOCAL)) File "/usr/lib/python3/dist-packages/cloudinit/stages.py", line 629, in apply_network_config netcfg, src = self._find_networking_config() File "/usr/lib/python3/dist-packages/cloudinit/stages.py", line 616, in _find_networking_config if self.datasource and hasattr(self.datasource, 'network_config'): File "/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceConfigDrive.py", line 150, in network_config self.network_json, known_macs=self.known_macs) File "/usr/lib/python3/dist-packages/cloudinit/sources/helpers/openstack.py", line 638, in convert_net_json known_macs = net.get_interfaces_by_mac() File "/usr/lib/python3/dist-packages/cloudinit/net/__init__.py", line 403, in get_interfaces_by_mac (name, ret[mac], mac)) RuntimeError: duplicate mac found! both 'gretap0' and 'lo' have mac '00:00:00:00:00:00' ------------------------------------------------------------ Cloud-init v. 0.7.9 running 'modules:config' at Fri, 19 May 2017 13:41:02 +0000. Up 4.0 seconds. Cloud-init v. 0.7.9 running 'modules:final' at Fri, 19 May 2017 13:41:04 +0000. Up 6.0 seconds. Cloud-init v. 0.7.9 finished at Fri, 19 May 2017 13:41:04 +0000. Datasource DataSourceConfigDrive [net,ver=2][source=/config-drive]. Up 6.0 seconds Related bugs: * bug 1692545: guests have unexpected network devices gretap0 and gre0 To manage notifications about this bug go to: https://bugs.launchpad.net/cloud-init/+bug/1692028/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp