Public bug reported: Hi,
cloud-init change https://github.com/canonical/cloud- init/commit/70dbccbbb27f7cc3f2decd692d41403f0d745c62 appears to break cloud-init on Aliyun. We had been using a version 20.2 or more precisely http://ftp.de.debian.org/debian/pool/main/c/cloud-init/cloud- init_20.2-2~deb10u1_all.deb with no issues. Version 20.4.1 or more precisely http://ftp.de.debian.org/debian/pool/main/c/cloud-init/cloud- init_20.4.1-1_all.deb breaks with the log output shown below. As the key device-number is not used in 20.2 this clearly points to the change referenced above. It is kind of unclear where that key is supposed to be configured as there is no other reference to that in the code. This is more or less a standard Debian configuration that we are using from the packages referenced above. This appears to cause user and group management to be skipped which is causing us headache. Quite interestingly it does work find on AWS which appears to use the same code. Let me know if you need anything else. 2021-03-05 16:47:30,866 - util.py[DEBUG]: loaded blob returned None, returning default. 2021-03-05 16:47:30,867 - util.py[DEBUG]: Reading from /sys/class/net/lo/address (quiet=False) 2021-03-05 16:47:30,867 - util.py[DEBUG]: Read 18 bytes from /sys/class/net/lo/address 2021-03-05 16:47:30,867 - util.py[DEBUG]: Reading from /sys/class/net/ens5/address (quiet=False) 2021-03-05 16:47:30,867 - util.py[DEBUG]: Read 18 bytes from /sys/class/net/ens5/address 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/ens5/name_assign_type (quiet=False) 2021-03-05 16:47:30,868 - util.py[DEBUG]: Read 2 bytes from /sys/class/net/ens5/name_assign_type 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/ens5/carrier (quiet=False) 2021-03-05 16:47:30,868 - util.py[DEBUG]: Read 2 bytes from /sys/class/net/ens5/carrier 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/ens5/address (quiet=False) 2021-03-05 16:47:30,868 - util.py[DEBUG]: Read 18 bytes from /sys/class/net/ens5/address 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/lo/addr_assign_type (quiet=False) 2021-03-05 16:47:30,868 - util.py[DEBUG]: Read 2 bytes from /sys/class/net/lo/addr_assign_type 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/lo/uevent (quiet=False) 2021-03-05 16:47:30,868 - util.py[DEBUG]: Read 23 bytes from /sys/class/net/lo/uevent 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/lo/address (quiet=False) 2021-03-05 16:47:30,868 - util.py[DEBUG]: Read 18 bytes from /sys/class/net/lo/address 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/lo/device/device (quiet=False) 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/ens5/addr_assign_type (quiet=False) 2021-03-05 16:47:30,868 - util.py[DEBUG]: Read 2 bytes from /sys/class/net/ens5/addr_assign_type 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/ens5/uevent (quiet=False) 2021-03-05 16:47:30,869 - util.py[DEBUG]: Read 25 bytes from /sys/class/net/ens5/uevent 2021-03-05 16:47:30,869 - util.py[DEBUG]: Reading from /sys/class/net/ens5/address (quiet=False) 2021-03-05 16:47:30,869 - util.py[DEBUG]: Read 18 bytes from /sys/class/net/ens5/address 2021-03-05 16:47:30,869 - util.py[DEBUG]: Reading from /sys/class/net/ens5/device/device (quiet=False) 2021-03-05 16:47:30,869 - util.py[DEBUG]: Read 7 bytes from /sys/class/net/ens5/device/device 2021-03-05 16:47:30,869 - util.py[DEBUG]: Reading from /sys/class/net/lo/type (quiet=False) 2021-03-05 16:47:30,869 - util.py[DEBUG]: Read 4 bytes from /sys/class/net/lo/type 2021-03-05 16:47:30,869 - util.py[DEBUG]: Reading from /sys/class/net/ens5/type (quiet=False) 2021-03-05 16:47:30,869 - util.py[DEBUG]: Read 2 bytes from /sys/class/net/ens5/type 2021-03-05 16:47:30,869 - util.py[WARNING]: failed stage init 2021-03-05 16:47:30,869 - util.py[DEBUG]: failed stage init Traceback (most recent call last): File "/usr/lib/python3/dist-packages/cloudinit/cmd/main.py", line 653, in status_wrapper ret = functor(name, args) File "/usr/lib/python3/dist-packages/cloudinit/cmd/main.py", line 362, in main_init init.apply_network_config(bring_up=bool(mode != sources.DSMODE_LOCAL)) File "/usr/lib/python3/dist-packages/cloudinit/stages.py", line 678, in apply_network_config netcfg, src = self._find_networking_config() File "/usr/lib/python3/dist-packages/cloudinit/stages.py", line 643, in _find_networking_config if self.datasource and hasattr(self.datasource, 'network_config'): File "/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceEc2.py", line 415, in network_config result = convert_ec2_metadata_network_config( File "/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceEc2.py", line 774, in convert_ec2_metadata_network_config nic_idx = int(nic_metadata['device-number']) + 1 KeyError: 'device-number' 2021-03-05 16:47:30,870 - atomic_helper.py[DEBUG]: Atomically writing to file /var/lib/cloud/data/status.json (via temporary file /var/lib/cloud/data/tmppae4_4kw) - w: [644] 526 bytes/chars 2021-03-05 16:47:30,870 - util.py[DEBUG]: Reading from /proc/uptime (quiet=False) 2021-03-05 16:47:30,870 - util.py[DEBUG]: Read 12 bytes from /proc/uptime 2021-03-05 16:47:30,870 - util.py[DEBUG]: cloud-init mode 'init' took 1.744 seconds (1.74) 2021-03-05 16:47:30,870 - handlers.py[DEBUG]: finish: init-network: SUCCESS: searching for network datasources ** Affects: cloud-init Importance: Undecided Status: New ** Description changed: Hi, cloud-init change https://github.com/canonical/cloud- init/commit/70dbccbbb27f7cc3f2decd692d41403f0d745c62 appears to break cloud-init on Aliyun. We had been using a version 20.2 or more precisely http://ftp.de.debian.org/debian/pool/main/c/cloud-init/cloud- init_20.2-2~deb10u1_all.deb - version 20.4.1 or more precisely + with no issues. Version 20.4.1 or more precisely http://ftp.de.debian.org/debian/pool/main/c/cloud-init/cloud- init_20.4.1-1_all.deb - breaks with the log output shown below. As the key is not used in 20.2 - this clearly points to the change referenced above. It is kind of - unclear where that key is supposed to be configured as there is no other - reference to that in the code. + breaks with the log output shown below. As the key device-number is not + used in 20.2 this clearly points to the change referenced above. It is + kind of unclear where that key is supposed to be configured as there is + no other reference to that in the code. - This is more or less a standard Debian configuration that we are using - from the packages referenced above. This appears to cause user and group - management to be skipped which is causing us headache. + This is more or less a standard Debian configuration that we are using from the packages referenced above. This appears to cause user and group management to be skipped which is causing us headache. Quite interestingly + it does work find on AWS which appears to use the same code. Let me know if you need anything else. 2021-03-05 16:47:30,866 - util.py[DEBUG]: loaded blob returned None, returning default. 2021-03-05 16:47:30,867 - util.py[DEBUG]: Reading from /sys/class/net/lo/address (quiet=False) 2021-03-05 16:47:30,867 - util.py[DEBUG]: Read 18 bytes from /sys/class/net/lo/address 2021-03-05 16:47:30,867 - util.py[DEBUG]: Reading from /sys/class/net/ens5/address (quiet=False) 2021-03-05 16:47:30,867 - util.py[DEBUG]: Read 18 bytes from /sys/class/net/ens5/address 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/ens5/name_assign_type (quiet=False) 2021-03-05 16:47:30,868 - util.py[DEBUG]: Read 2 bytes from /sys/class/net/ens5/name_assign_type 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/ens5/carrier (quiet=False) 2021-03-05 16:47:30,868 - util.py[DEBUG]: Read 2 bytes from /sys/class/net/ens5/carrier 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/ens5/address (quiet=False) 2021-03-05 16:47:30,868 - util.py[DEBUG]: Read 18 bytes from /sys/class/net/ens5/address 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/lo/addr_assign_type (quiet=False) 2021-03-05 16:47:30,868 - util.py[DEBUG]: Read 2 bytes from /sys/class/net/lo/addr_assign_type 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/lo/uevent (quiet=False) 2021-03-05 16:47:30,868 - util.py[DEBUG]: Read 23 bytes from /sys/class/net/lo/uevent 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/lo/address (quiet=False) 2021-03-05 16:47:30,868 - util.py[DEBUG]: Read 18 bytes from /sys/class/net/lo/address 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/lo/device/device (quiet=False) 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/ens5/addr_assign_type (quiet=False) 2021-03-05 16:47:30,868 - util.py[DEBUG]: Read 2 bytes from /sys/class/net/ens5/addr_assign_type 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/ens5/uevent (quiet=False) 2021-03-05 16:47:30,869 - util.py[DEBUG]: Read 25 bytes from /sys/class/net/ens5/uevent 2021-03-05 16:47:30,869 - util.py[DEBUG]: Reading from /sys/class/net/ens5/address (quiet=False) 2021-03-05 16:47:30,869 - util.py[DEBUG]: Read 18 bytes from /sys/class/net/ens5/address 2021-03-05 16:47:30,869 - util.py[DEBUG]: Reading from /sys/class/net/ens5/device/device (quiet=False) 2021-03-05 16:47:30,869 - util.py[DEBUG]: Read 7 bytes from /sys/class/net/ens5/device/device 2021-03-05 16:47:30,869 - util.py[DEBUG]: Reading from /sys/class/net/lo/type (quiet=False) 2021-03-05 16:47:30,869 - util.py[DEBUG]: Read 4 bytes from /sys/class/net/lo/type 2021-03-05 16:47:30,869 - util.py[DEBUG]: Reading from /sys/class/net/ens5/type (quiet=False) 2021-03-05 16:47:30,869 - util.py[DEBUG]: Read 2 bytes from /sys/class/net/ens5/type 2021-03-05 16:47:30,869 - util.py[WARNING]: failed stage init 2021-03-05 16:47:30,869 - util.py[DEBUG]: failed stage init Traceback (most recent call last): - File "/usr/lib/python3/dist-packages/cloudinit/cmd/main.py", line 653, in status_wrapper - ret = functor(name, args) - File "/usr/lib/python3/dist-packages/cloudinit/cmd/main.py", line 362, in main_init - init.apply_network_config(bring_up=bool(mode != sources.DSMODE_LOCAL)) - File "/usr/lib/python3/dist-packages/cloudinit/stages.py", line 678, in apply_network_config - netcfg, src = self._find_networking_config() - File "/usr/lib/python3/dist-packages/cloudinit/stages.py", line 643, in _find_networking_config - if self.datasource and hasattr(self.datasource, 'network_config'): - File "/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceEc2.py", line 415, in network_config - result = convert_ec2_metadata_network_config( - File "/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceEc2.py", line 774, in convert_ec2_metadata_network_config - nic_idx = int(nic_metadata['device-number']) + 1 + File "/usr/lib/python3/dist-packages/cloudinit/cmd/main.py", line 653, in status_wrapper + ret = functor(name, args) + File "/usr/lib/python3/dist-packages/cloudinit/cmd/main.py", line 362, in main_init + init.apply_network_config(bring_up=bool(mode != sources.DSMODE_LOCAL)) + File "/usr/lib/python3/dist-packages/cloudinit/stages.py", line 678, in apply_network_config + netcfg, src = self._find_networking_config() + File "/usr/lib/python3/dist-packages/cloudinit/stages.py", line 643, in _find_networking_config + if self.datasource and hasattr(self.datasource, 'network_config'): + File "/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceEc2.py", line 415, in network_config + result = convert_ec2_metadata_network_config( + File "/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceEc2.py", line 774, in convert_ec2_metadata_network_config + nic_idx = int(nic_metadata['device-number']) + 1 KeyError: 'device-number' 2021-03-05 16:47:30,870 - atomic_helper.py[DEBUG]: Atomically writing to file /var/lib/cloud/data/status.json (via temporary file /var/lib/cloud/data/tmppae4_4kw) - w: [644] 526 bytes/chars 2021-03-05 16:47:30,870 - util.py[DEBUG]: Reading from /proc/uptime (quiet=False) 2021-03-05 16:47:30,870 - util.py[DEBUG]: Read 12 bytes from /proc/uptime 2021-03-05 16:47:30,870 - util.py[DEBUG]: cloud-init mode 'init' took 1.744 seconds (1.74) 2021-03-05 16:47:30,870 - handlers.py[DEBUG]: finish: init-network: SUCCESS: searching for network datasources -- 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/1917875 Title: Change breaks cloud-init on Ali Status in cloud-init: New Bug description: Hi, cloud-init change https://github.com/canonical/cloud- init/commit/70dbccbbb27f7cc3f2decd692d41403f0d745c62 appears to break cloud-init on Aliyun. We had been using a version 20.2 or more precisely http://ftp.de.debian.org/debian/pool/main/c/cloud-init/cloud- init_20.2-2~deb10u1_all.deb with no issues. Version 20.4.1 or more precisely http://ftp.de.debian.org/debian/pool/main/c/cloud-init/cloud- init_20.4.1-1_all.deb breaks with the log output shown below. As the key device-number is not used in 20.2 this clearly points to the change referenced above. It is kind of unclear where that key is supposed to be configured as there is no other reference to that in the code. This is more or less a standard Debian configuration that we are using from the packages referenced above. This appears to cause user and group management to be skipped which is causing us headache. Quite interestingly it does work find on AWS which appears to use the same code. Let me know if you need anything else. 2021-03-05 16:47:30,866 - util.py[DEBUG]: loaded blob returned None, returning default. 2021-03-05 16:47:30,867 - util.py[DEBUG]: Reading from /sys/class/net/lo/address (quiet=False) 2021-03-05 16:47:30,867 - util.py[DEBUG]: Read 18 bytes from /sys/class/net/lo/address 2021-03-05 16:47:30,867 - util.py[DEBUG]: Reading from /sys/class/net/ens5/address (quiet=False) 2021-03-05 16:47:30,867 - util.py[DEBUG]: Read 18 bytes from /sys/class/net/ens5/address 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/ens5/name_assign_type (quiet=False) 2021-03-05 16:47:30,868 - util.py[DEBUG]: Read 2 bytes from /sys/class/net/ens5/name_assign_type 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/ens5/carrier (quiet=False) 2021-03-05 16:47:30,868 - util.py[DEBUG]: Read 2 bytes from /sys/class/net/ens5/carrier 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/ens5/address (quiet=False) 2021-03-05 16:47:30,868 - util.py[DEBUG]: Read 18 bytes from /sys/class/net/ens5/address 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/lo/addr_assign_type (quiet=False) 2021-03-05 16:47:30,868 - util.py[DEBUG]: Read 2 bytes from /sys/class/net/lo/addr_assign_type 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/lo/uevent (quiet=False) 2021-03-05 16:47:30,868 - util.py[DEBUG]: Read 23 bytes from /sys/class/net/lo/uevent 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/lo/address (quiet=False) 2021-03-05 16:47:30,868 - util.py[DEBUG]: Read 18 bytes from /sys/class/net/lo/address 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/lo/device/device (quiet=False) 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/ens5/addr_assign_type (quiet=False) 2021-03-05 16:47:30,868 - util.py[DEBUG]: Read 2 bytes from /sys/class/net/ens5/addr_assign_type 2021-03-05 16:47:30,868 - util.py[DEBUG]: Reading from /sys/class/net/ens5/uevent (quiet=False) 2021-03-05 16:47:30,869 - util.py[DEBUG]: Read 25 bytes from /sys/class/net/ens5/uevent 2021-03-05 16:47:30,869 - util.py[DEBUG]: Reading from /sys/class/net/ens5/address (quiet=False) 2021-03-05 16:47:30,869 - util.py[DEBUG]: Read 18 bytes from /sys/class/net/ens5/address 2021-03-05 16:47:30,869 - util.py[DEBUG]: Reading from /sys/class/net/ens5/device/device (quiet=False) 2021-03-05 16:47:30,869 - util.py[DEBUG]: Read 7 bytes from /sys/class/net/ens5/device/device 2021-03-05 16:47:30,869 - util.py[DEBUG]: Reading from /sys/class/net/lo/type (quiet=False) 2021-03-05 16:47:30,869 - util.py[DEBUG]: Read 4 bytes from /sys/class/net/lo/type 2021-03-05 16:47:30,869 - util.py[DEBUG]: Reading from /sys/class/net/ens5/type (quiet=False) 2021-03-05 16:47:30,869 - util.py[DEBUG]: Read 2 bytes from /sys/class/net/ens5/type 2021-03-05 16:47:30,869 - util.py[WARNING]: failed stage init 2021-03-05 16:47:30,869 - util.py[DEBUG]: failed stage init Traceback (most recent call last): File "/usr/lib/python3/dist-packages/cloudinit/cmd/main.py", line 653, in status_wrapper ret = functor(name, args) File "/usr/lib/python3/dist-packages/cloudinit/cmd/main.py", line 362, in main_init init.apply_network_config(bring_up=bool(mode != sources.DSMODE_LOCAL)) File "/usr/lib/python3/dist-packages/cloudinit/stages.py", line 678, in apply_network_config netcfg, src = self._find_networking_config() File "/usr/lib/python3/dist-packages/cloudinit/stages.py", line 643, in _find_networking_config if self.datasource and hasattr(self.datasource, 'network_config'): File "/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceEc2.py", line 415, in network_config result = convert_ec2_metadata_network_config( File "/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceEc2.py", line 774, in convert_ec2_metadata_network_config nic_idx = int(nic_metadata['device-number']) + 1 KeyError: 'device-number' 2021-03-05 16:47:30,870 - atomic_helper.py[DEBUG]: Atomically writing to file /var/lib/cloud/data/status.json (via temporary file /var/lib/cloud/data/tmppae4_4kw) - w: [644] 526 bytes/chars 2021-03-05 16:47:30,870 - util.py[DEBUG]: Reading from /proc/uptime (quiet=False) 2021-03-05 16:47:30,870 - util.py[DEBUG]: Read 12 bytes from /proc/uptime 2021-03-05 16:47:30,870 - util.py[DEBUG]: cloud-init mode 'init' took 1.744 seconds (1.74) 2021-03-05 16:47:30,870 - handlers.py[DEBUG]: finish: init-network: SUCCESS: searching for network datasources To manage notifications about this bug go to: https://bugs.launchpad.net/cloud-init/+bug/1917875/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

