Activity log for bug #1675571

Date Who What changed Old value New value Message
2017-03-23 21:38:47 Ben Howard bug added bug
2017-03-23 21:48:26 Ben Howard description Regresion from Bug #1657940. When provisioning with multiple eth0 addresses, /etc/resolv.conf is empty: Consider: root@tester:~# cat /etc/network/interfaces.d/50-cloud-init.cfg # This file is generated from information provided by # the datasource. Changes to it will not persist across an instance. # To disable cloud-init's network configuration capabilities, write a file # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following: # network: {config: disabled} auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 138.197.98.102 dns-nameservers 8.8.8.8 8.8.4.4 gateway 138.197.96.1 netmask 255.255.240.0 # control-alias eth0 iface eth0 inet static address 10.17.0.11 netmask 255.255.0.0 Which then yields an empty /etc/resolv.conf: root@tester:/run/resolvconf# cat interface/eth0.inet root@tester:/run/resolvconf# cd / # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN The problem is that resolvconfg does pattern matching for eth*.inet. The second definition of eth0 has no nameserver and therefore overrides the definition. Regresion from Bug #1657940. When provisioning with multiple eth0 addresses, /etc/resolv.conf is empty: Consider: root@tester:~# cat /etc/network/interfaces.d/50-cloud-init.cfg # This file is generated from information provided by # the datasource. Changes to it will not persist across an instance. # To disable cloud-init's network configuration capabilities, write a file # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following: # network: {config: disabled} auto lo iface lo inet loopback auto eth0 iface eth0 inet static     address 138.197.98.102     dns-nameservers 8.8.8.8 8.8.4.4     gateway 138.197.96.1     netmask 255.255.240.0 # control-alias eth0 iface eth0 inet static     address 10.17.0.11     netmask 255.255.0.0 Which then yields an empty /etc/resolv.conf: root@tester:/run/resolvconf# cat interface/eth0.inet root@tester:/run/resolvconf# cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN The problem is that resolvconfg does pattern matching for eth*.inet. The second definition of eth0 has no nameserver and therefore overrides the definition.
2017-03-23 21:54:42 Ryan Harper cloud-init: status New Incomplete
2017-03-24 17:30:12 Ben Howard cloud-init: status Incomplete New
2017-03-27 14:15:18 Scott Moser cloud-init: status New Confirmed
2017-03-27 14:15:22 Scott Moser cloud-init: importance Undecided Medium
2017-03-27 17:18:28 Ben Howard affects cloud-init cloud-init (Ubuntu)
2017-03-27 17:19:21 Ben Howard bug task added cloud-init
2017-03-27 17:19:28 Ben Howard cloud-init: status New Confirmed
2017-03-27 21:43:27 Ben Howard summary 0.7.9-48-g1c795b9-0ubuntu1~16.04.1 with multiple eth0 definitions has no resolvers Cloud-init update renders secondary addresses ti be incompatible with standard tools
2017-03-27 21:47:14 Ben Howard description Regresion from Bug #1657940. When provisioning with multiple eth0 addresses, /etc/resolv.conf is empty: Consider: root@tester:~# cat /etc/network/interfaces.d/50-cloud-init.cfg # This file is generated from information provided by # the datasource. Changes to it will not persist across an instance. # To disable cloud-init's network configuration capabilities, write a file # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following: # network: {config: disabled} auto lo iface lo inet loopback auto eth0 iface eth0 inet static     address 138.197.98.102     dns-nameservers 8.8.8.8 8.8.4.4     gateway 138.197.96.1     netmask 255.255.240.0 # control-alias eth0 iface eth0 inet static     address 10.17.0.11     netmask 255.255.0.0 Which then yields an empty /etc/resolv.conf: root@tester:/run/resolvconf# cat interface/eth0.inet root@tester:/run/resolvconf# cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN The problem is that resolvconfg does pattern matching for eth*.inet. The second definition of eth0 has no nameserver and therefore overrides the definition. The change of how cloud-init renders /etc/network/interface.d/50-cloud-init.cfg, standard tools no longer work as expected: * resolvconf will nullify nameservers * if* commands ignore secondary addresses The rendering is considered dangerous per Debian (https://wiki.debian.org/NetworkConfiguration), to whit: "Also, ifupdown supports specifying multiple interfaces by repeating iface sections with the same interface name. The key difference from the method described above is that all such sections are treated by ifupdown as just one interface, so user can't add or remove them individually. However, up/down commands, as well as scripts, are called for every section as it used to be. "Note however that this method is dangerous! Certain driver/hardware combinations may sometimes fail to bring the link up if no labels are assigned to the alias interfaces. (Seen this on Debian Wheezy and Jessie with RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 01) auto-negotiating to 10/full. A similar warning from another person exists in the history of this page.) " [ORIGINAL REPORT] Regresion from Bug #1657940. When provisioning with multiple eth0 addresses, /etc/resolv.conf is empty: Consider: root@tester:~# cat /etc/network/interfaces.d/50-cloud-init.cfg # This file is generated from information provided by # the datasource. Changes to it will not persist across an instance. # To disable cloud-init's network configuration capabilities, write a file # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following: # network: {config: disabled} auto lo iface lo inet loopback auto eth0 iface eth0 inet static     address 138.197.98.102     dns-nameservers 8.8.8.8 8.8.4.4     gateway 138.197.96.1     netmask 255.255.240.0 # control-alias eth0 iface eth0 inet static     address 10.17.0.11     netmask 255.255.0.0 Which then yields an empty /etc/resolv.conf: root@tester:/run/resolvconf# cat interface/eth0.inet root@tester:/run/resolvconf# cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN The problem is that resolvconfg does pattern matching for eth*.inet. The second definition of eth0 has no nameserver and therefore overrides the definition.
2017-03-28 16:26:46 Scott Moser bug task added resolvconf (Ubuntu)
2017-03-28 17:14:56 Launchpad Janitor merge proposal linked https://code.launchpad.net/~smoser/ubuntu/+source/resolvconf/+git/resolvconf/+merge/321203
2017-03-28 17:22:41 Scott Moser summary Cloud-init update renders secondary addresses ti be incompatible with standard tools Cloud-init update renders secondary addresses to be incompatible with standard tools
2017-03-28 17:45:42 Ben Howard description The change of how cloud-init renders /etc/network/interface.d/50-cloud-init.cfg, standard tools no longer work as expected: * resolvconf will nullify nameservers * if* commands ignore secondary addresses The rendering is considered dangerous per Debian (https://wiki.debian.org/NetworkConfiguration), to whit: "Also, ifupdown supports specifying multiple interfaces by repeating iface sections with the same interface name. The key difference from the method described above is that all such sections are treated by ifupdown as just one interface, so user can't add or remove them individually. However, up/down commands, as well as scripts, are called for every section as it used to be. "Note however that this method is dangerous! Certain driver/hardware combinations may sometimes fail to bring the link up if no labels are assigned to the alias interfaces. (Seen this on Debian Wheezy and Jessie with RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 01) auto-negotiating to 10/full. A similar warning from another person exists in the history of this page.) " [ORIGINAL REPORT] Regresion from Bug #1657940. When provisioning with multiple eth0 addresses, /etc/resolv.conf is empty: Consider: root@tester:~# cat /etc/network/interfaces.d/50-cloud-init.cfg # This file is generated from information provided by # the datasource. Changes to it will not persist across an instance. # To disable cloud-init's network configuration capabilities, write a file # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following: # network: {config: disabled} auto lo iface lo inet loopback auto eth0 iface eth0 inet static     address 138.197.98.102     dns-nameservers 8.8.8.8 8.8.4.4     gateway 138.197.96.1     netmask 255.255.240.0 # control-alias eth0 iface eth0 inet static     address 10.17.0.11     netmask 255.255.0.0 Which then yields an empty /etc/resolv.conf: root@tester:/run/resolvconf# cat interface/eth0.inet root@tester:/run/resolvconf# cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN The problem is that resolvconfg does pattern matching for eth*.inet. The second definition of eth0 has no nameserver and therefore overrides the definition. The change of how cloud-init renders /etc/network/interface.d/50-cloud-init.cfg, standard tools no longer work as expected: * resolvconf will nullify nameservers * if* commands ignore secondary addresses [ORIGINAL REPORT] Regresion from Bug #1657940. When provisioning with multiple eth0 addresses, /etc/resolv.conf is empty: Consider: root@tester:~# cat /etc/network/interfaces.d/50-cloud-init.cfg # This file is generated from information provided by # the datasource. Changes to it will not persist across an instance. # To disable cloud-init's network configuration capabilities, write a file # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following: # network: {config: disabled} auto lo iface lo inet loopback auto eth0 iface eth0 inet static     address 138.197.98.102     dns-nameservers 8.8.8.8 8.8.4.4     gateway 138.197.96.1     netmask 255.255.240.0 # control-alias eth0 iface eth0 inet static     address 10.17.0.11     netmask 255.255.0.0 Which then yields an empty /etc/resolv.conf: root@tester:/run/resolvconf# cat interface/eth0.inet root@tester:/run/resolvconf# cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN The problem is that resolvconfg does pattern matching for eth*.inet. The second definition of eth0 has no nameserver and therefore overrides the definition.
2017-03-28 18:36:45 Scott Moser bug task added curtin
2017-03-28 18:36:54 Scott Moser curtin: status New Confirmed
2017-03-28 18:37:00 Scott Moser curtin: importance Undecided Medium
2017-03-28 18:37:04 Scott Moser cloud-init: importance Undecided Medium
2017-04-11 16:19:13 Launchpad Janitor merge proposal linked https://code.launchpad.net/~utlemming/cloud-init/+git/cloud-init-1/+merge/322379
2017-04-11 16:32:57 Launchpad Janitor merge proposal linked https://code.launchpad.net/~utlemming/cloud-init/+git/cloud-init-1/+merge/322380
2017-04-11 17:18:54 Launchpad Janitor merge proposal linked https://code.launchpad.net/~utlemming/cloud-init/+git/cloud-init-1/+merge/322382
2017-04-11 19:49:25 Scott Moser bug watch added http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=783596
2017-04-11 19:49:25 Scott Moser bug task added resolvconf (Debian)
2017-04-11 23:07:49 Bug Watch Updater resolvconf (Debian): status Unknown Won't Fix
2023-05-10 22:49:33 James Falcon bug watch added https://github.com/canonical/cloud-init/issues/2842
2023-05-10 22:49:34 James Falcon cloud-init: status Confirmed Expired