** Tags added: regression-update ** Description changed:
+ Does not affect: Noble, Oracular, Questing + In cloud-init 25.1.2, changed systemd-related packaging from /lib TO /usr/lib which was suggested by lintian packaging warnings.[1] This change though is incompatible with debhelper version 13.6ubuntu1 in Jammy which now no longer "sees" cloud-init's systemd units/services/target and doesn't inject the same debhelper enablement script segments for all of cloud-init services. This results in inability to launch any VMs on Jammy as cloud-init services are all disabled/insactive despite ds-indentify correctly identifying the platform. This behavior was seen in MAAS Jammy images being unable to get to network with cloud-init 25.1.2 per this comment[2]. on a somewhat related MAAS bug about early boot on Jammy. This regression was caused by the single commit: https://github.com/canonical/cloud-init/commit/0547349214fcfb827e58c1de5e4ad7d23d08cc7f With the above change, the binary installed by cloud-init 25.1.2 will not enable any cloud-init services because cloud-init.postinst lacks all the following debhelper enablement scripts: # Automatically added by dh_installsystemd/13.6ubuntu1 if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then - # This will only remove masks created by d-s-h on package removal. - deb-systemd-helper unmask 'cloud-config.service' >/dev/null || true + # This will only remove masks created by d-s-h on package removal. + deb-systemd-helper unmask 'cloud-config.service' >/dev/null || true - # was-enabled defaults to true, so new installations run enable. - if deb-systemd-helper --quiet was-enabled 'cloud-config.service'; then - # Enables the unit on first installation, creates new - # symlinks on upgrades if the unit file has changed. - deb-systemd-helper enable 'cloud-config.service' >/dev/null || true - else - # Update the statefile to add new symlinks (if any), which need to be - # cleaned up on purge. Also remove old symlinks. - deb-systemd-helper update-state 'cloud-config.service' >/dev/null || true - fi + # was-enabled defaults to true, so new installations run enable. + if deb-systemd-helper --quiet was-enabled 'cloud-config.service'; then + # Enables the unit on first installation, creates new + # symlinks on upgrades if the unit file has changed. + deb-systemd-helper enable 'cloud-config.service' >/dev/null || true + else + # Update the statefile to add new symlinks (if any), which need to be + # cleaned up on purge. Also remove old symlinks. + deb-systemd-helper update-state 'cloud-config.service' >/dev/null || true + fi fi # End automatically added section # Automatically added by dh_installsystemd/13.6ubuntu1 if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then - # This will only remove masks created by d-s-h on package removal. - deb-systemd-helper unmask 'cloud-final.service' >/dev/null || true + # This will only remove masks created by d-s-h on package removal. + deb-systemd-helper unmask 'cloud-final.service' >/dev/null || true - # was-enabled defaults to true, so new installations run enable. - if deb-systemd-helper --quiet was-enabled 'cloud-final.service'; then - # Enables the unit on first installation, creates new - # symlinks on upgrades if the unit file has changed. - deb-systemd-helper enable 'cloud-final.service' >/dev/null || true - else - # Update the statefile to add new symlinks (if any), which need to be - # cleaned up on purge. Also remove old symlinks. - deb-systemd-helper update-state 'cloud-final.service' >/dev/null || true - fi + # was-enabled defaults to true, so new installations run enable. + if deb-systemd-helper --quiet was-enabled 'cloud-final.service'; then + # Enables the unit on first installation, creates new + # symlinks on upgrades if the unit file has changed. + deb-systemd-helper enable 'cloud-final.service' >/dev/null || true + else + # Update the statefile to add new symlinks (if any), which need to be + # cleaned up on purge. Also remove old symlinks. + deb-systemd-helper update-state 'cloud-final.service' >/dev/null || true + fi fi # End automatically added section # Automatically added by dh_installsystemd/13.6ubuntu1 if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then - # This will only remove masks created by d-s-h on package removal. - deb-systemd-helper unmask 'cloud-init-hotplugd.socket' >/dev/null || true + # This will only remove masks created by d-s-h on package removal. + deb-systemd-helper unmask 'cloud-init-hotplugd.socket' >/dev/null || true - # was-enabled defaults to true, so new installations run enable. - if deb-systemd-helper --quiet was-enabled 'cloud-init-hotplugd.socket'; then - # Enables the unit on first installation, creates new - # symlinks on upgrades if the unit file has changed. - deb-systemd-helper enable 'cloud-init-hotplugd.socket' >/dev/null || true - else - # Update the statefile to add new symlinks (if any), which need to be - # cleaned up on purge. Also remove old symlinks. - deb-systemd-helper update-state 'cloud-init-hotplugd.socket' >/dev/null || true - fi + # was-enabled defaults to true, so new installations run enable. + if deb-systemd-helper --quiet was-enabled 'cloud-init-hotplugd.socket'; then + # Enables the unit on first installation, creates new + # symlinks on upgrades if the unit file has changed. + deb-systemd-helper enable 'cloud-init-hotplugd.socket' >/dev/null || true + else + # Update the statefile to add new symlinks (if any), which need to be + # cleaned up on purge. Also remove old symlinks. + deb-systemd-helper update-state 'cloud-init-hotplugd.socket' >/dev/null || true + fi fi # End automatically added section # Automatically added by dh_installsystemd/13.6ubuntu1 if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then - # This will only remove masks created by d-s-h on package removal. - deb-systemd-helper unmask 'cloud-init-local.service' >/dev/null || true + # This will only remove masks created by d-s-h on package removal. + deb-systemd-helper unmask 'cloud-init-local.service' >/dev/null || true - # was-enabled defaults to true, so new installations run enable. - if deb-systemd-helper --quiet was-enabled 'cloud-init-local.service'; then - # Enables the unit on first installation, creates new - # symlinks on upgrades if the unit file has changed. - deb-systemd-helper enable 'cloud-init-local.service' >/dev/null || true - else - # Update the statefile to add new symlinks (if any), which need to be - # cleaned up on purge. Also remove old symlinks. - deb-systemd-helper update-state 'cloud-init-local.service' >/dev/null || true - fi + # was-enabled defaults to true, so new installations run enable. + if deb-systemd-helper --quiet was-enabled 'cloud-init-local.service'; then + # Enables the unit on first installation, creates new + # symlinks on upgrades if the unit file has changed. + deb-systemd-helper enable 'cloud-init-local.service' >/dev/null || true + else + # Update the statefile to add new symlinks (if any), which need to be + # cleaned up on purge. Also remove old symlinks. + deb-systemd-helper update-state 'cloud-init-local.service' >/dev/null || true + fi fi # End automatically added section # Automatically added by dh_installsystemd/13.6ubuntu1 if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then - # This will only remove masks created by d-s-h on package removal. - deb-systemd-helper unmask 'cloud-init.service' >/dev/null || true + # This will only remove masks created by d-s-h on package removal. + deb-systemd-helper unmask 'cloud-init.service' >/dev/null || true - # was-enabled defaults to true, so new installations run enable. - if deb-systemd-helper --quiet was-enabled 'cloud-init.service'; then - # Enables the unit on first installation, creates new - # symlinks on upgrades if the unit file has changed. - deb-systemd-helper enable 'cloud-init.service' >/dev/null || true - else - # Update the statefile to add new symlinks (if any), which need to be - # cleaned up on purge. Also remove old symlinks. - deb-systemd-helper update-state 'cloud-init.service' >/dev/null || true - fi + # was-enabled defaults to true, so new installations run enable. + if deb-systemd-helper --quiet was-enabled 'cloud-init.service'; then + # Enables the unit on first installation, creates new + # symlinks on upgrades if the unit file has changed. + deb-systemd-helper enable 'cloud-init.service' >/dev/null || true + else + # Update the statefile to add new symlinks (if any), which need to be + # cleaned up on purge. Also remove old symlinks. + deb-systemd-helper update-state 'cloud-init.service' >/dev/null || true + fi fi # End automatically added section References: [1] Upstream cloud-init change doc https://cloudinit.readthedocs.io/en/latest/reference/breaking_changes.html#id2 [2] MAAS image launch failures https://bugs.launchpad.net/maas/+bug/2106671/comments/21 - - - =============== Original description ================ DISTRIB_DESCRIPTION="Ubuntu 22.04.5 LTS" apt-cache policy cloud-init cloud-init: Installed: 25.1.2-0ubuntu0~22.04.1 Candidate: 25.1.2-0ubuntu0~22.04.1 Version table: *** 25.1.2-0ubuntu0~22.04.1 100 100 /var/lib/dpkg/status At some point after June 4th 2025 our Octavia OpenStack test jobs started to fail. On closer inspection we found that the VMs were not getting IP addresses configured. I was able to reproduce this on a local devstack system. On the failing VM I connected to the console locally. The cloud-init configuration appears correct and the config drive mounted with the correct information. What is odd however is there are no cloud-init logs in /var/log. It appears as if it didn't run on boot. I compared our images from the last known successful test run and the current image and the only package I see different is: < cloud-init all 24.4.1-0ubuntu0~22.04.2 [566 kB] --- > cloud-init all 25.1.2-0ubuntu0~22.04.1 [568 kB] I then made a copy of the image and replaced 25.1.2 with the 24.4.1 version and this image booted as expected. This issue is 100% repeatable with 25.1.2. If you would like to create an image we have tools available to create one that reproduces the problem: 1. git clone https://opendev.org/openstack/octavia 2. cd octavia/diskimage-create 3. run "./diskimage-create.sh -r <root password> -d jammy" 4. It will create a qcow2 image that boots under OpenStack with config drive -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2113797 Title: cloud-init 25.1.2 on Jammy not running on VM boot, systemd services disabled To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/2113797/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
