Activity log for bug #1623868

Date Who What changed Old value New value Message
2016-09-15 09:42:31 Martin Pitt bug added bug
2016-09-15 09:42:44 Martin Pitt tags regression-release yakkety
2016-09-15 09:42:46 Martin Pitt cloud-init (Ubuntu): importance Undecided High
2016-09-15 09:54:00 Launchpad Janitor cloud-init (Ubuntu): status New Confirmed
2016-09-15 13:14:46 Scott Moser attachment added journalctl of vm where cloud-final was deleted https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1623868/+attachment/4741407/+files/journalctl-break-cloud-final.log
2016-09-15 13:15:10 Scott Moser attachment added journalctl of vm where cloud-init.target was deleted https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1623868/+attachment/4741408/+files/journalctl-break-cloud-init-target.log
2016-09-15 14:32:04 Martin Pitt cloud-init (Ubuntu Xenial): status New Fix Committed
2016-09-15 14:32:07 Martin Pitt bug added subscriber Ubuntu Stable Release Updates Team
2016-09-15 14:32:09 Martin Pitt bug added subscriber SRU Verification
2016-09-15 14:32:13 Martin Pitt tags regression-release yakkety regression-release verification-needed yakkety
2016-09-15 14:37:02 Scott Moser description With current yakkety cloud images (at least in Scalingstack), I often run into this dependency cycle at boot: Sep 15 09:28:51 ubuntu systemd[1]: cloud-init.target: Found ordering cycle on cloud-init.target/start Sep 15 09:28:51 ubuntu systemd[1]: cloud-init.target: Found dependency on cloud-final.service/start Sep 15 09:28:51 ubuntu systemd[1]: cloud-init.target: Found dependency on multi-user.target/start Sep 15 09:28:51 ubuntu systemd[1]: cloud-init.target: Found dependency on cloud-init.target/start Sep 15 09:28:51 ubuntu systemd[1]: cloud-init.target: Breaking ordering cycle by deleting job cloud-final.service/start Sep 15 09:28:51 ubuntu systemd[1]: cloud-final.service: Job cloud-final.service/start deleted to break ordering cycle starting with cloud-init.target/start ● cloud-final.service - Execute cloud user/final scripts Loaded: loaded (/lib/systemd/system/cloud-final.service; enabled; vendor preset: enabled) Active: inactive (dead) Thus /var/lib/cloud/instance/boot-finished never gets written and thus waiting for an instance to init just times out. This is with the most recent https://launchpad.net/ubuntu/+source/cloud-init/0.7.7-31-g65ace7b-0ubuntu1 ==== Begin SRU Template ==== [Impact] As part of the change in bug 1623868, we made cloud-final.target run After multi-user.target. That created a dependency loop between cloud-init.target and multi-user.target and cloud-final.target. Most of the time systemd would break that loop by dropping cloud-init.target. But sometimes, it would break the loop by dropping cloud-final.target, which would mean that user scripts do not run and generally cloud-init doesn't finish. [Test Case] ## Failure in a xenial image can only be reproduced by ## patching an image up to the previous xenial-proposed upload ## (0.7.7-31-g65ace7b-0ubuntu1~16.04.1), then cleaning it ## and then restarting. We will focus on verifying there is not ## a problem. ## Launch an instance and patch it up to xenial-proposed $ release=xenial $ name=x1 $ lxc launch ubuntu-daily:$release $name # wait for it to boot $ while ! lxc exec $name -- [ -e /run/cloud-init/result.json ]; do sleep 1; done ## Now update container, clean and reboot to show first boot $ lxc exec $name -- sh -c ' p=/etc/apt/sources.list.d/proposed.list echo deb http://archive.ubuntu.com/ubuntu xenial-proposed main > "$p" && apt-get update -q && apt-get -qy install cloud-init' $ lxc exec $name -- sh -c ' cd /var/lib/cloud && for d in *; do [ "$d" = "seed" ] || rm -Rf "$d"; done rm -Rf /var/log/cloud-init*' ## This is like first boot now. $ lxc exec $name reboot $ while ! lxc exec $name -- [ -e /run/cloud-init/result.json ]; do sleep 1; done ## The services should show active $ lxc exec $name -- journalctl | grep Break || echo Good, no breaks $ lxc exec $name -- systemctl --no-pager status cloud-final.service $ lxc exec $name -- systemctl --no-pager status cloud-init.target [Regression Potential] Playing with boot order can cause problems. Regression would be around some targets not running. On a booted system this would show itself inx journalctl | grep -i Break or journalctl | grep -i ordering ==== End SRU Template ==== With current yakkety cloud images (at least in Scalingstack), I often run into this dependency cycle at boot: Sep 15 09:28:51 ubuntu systemd[1]: cloud-init.target: Found ordering cycle on cloud-init.target/start Sep 15 09:28:51 ubuntu systemd[1]: cloud-init.target: Found dependency on cloud-final.service/start Sep 15 09:28:51 ubuntu systemd[1]: cloud-init.target: Found dependency on multi-user.target/start Sep 15 09:28:51 ubuntu systemd[1]: cloud-init.target: Found dependency on cloud-init.target/start Sep 15 09:28:51 ubuntu systemd[1]: cloud-init.target: Breaking ordering cycle by deleting job cloud-final.service/start Sep 15 09:28:51 ubuntu systemd[1]: cloud-final.service: Job cloud-final.service/start deleted to break ordering cycle starting with cloud-init.target/start ● cloud-final.service - Execute cloud user/final scripts    Loaded: loaded (/lib/systemd/system/cloud-final.service; enabled; vendor preset: enabled)    Active: inactive (dead) Thus /var/lib/cloud/instance/boot-finished never gets written and thus waiting for an instance to init just times out. This is with the most recent https://launchpad.net/ubuntu/+source/cloud-init/0.7.7-31-g65ace7b-0ubuntu1
2016-09-15 14:39:17 Scott Moser description ==== Begin SRU Template ==== [Impact] As part of the change in bug 1623868, we made cloud-final.target run After multi-user.target. That created a dependency loop between cloud-init.target and multi-user.target and cloud-final.target. Most of the time systemd would break that loop by dropping cloud-init.target. But sometimes, it would break the loop by dropping cloud-final.target, which would mean that user scripts do not run and generally cloud-init doesn't finish. [Test Case] ## Failure in a xenial image can only be reproduced by ## patching an image up to the previous xenial-proposed upload ## (0.7.7-31-g65ace7b-0ubuntu1~16.04.1), then cleaning it ## and then restarting. We will focus on verifying there is not ## a problem. ## Launch an instance and patch it up to xenial-proposed $ release=xenial $ name=x1 $ lxc launch ubuntu-daily:$release $name # wait for it to boot $ while ! lxc exec $name -- [ -e /run/cloud-init/result.json ]; do sleep 1; done ## Now update container, clean and reboot to show first boot $ lxc exec $name -- sh -c ' p=/etc/apt/sources.list.d/proposed.list echo deb http://archive.ubuntu.com/ubuntu xenial-proposed main > "$p" && apt-get update -q && apt-get -qy install cloud-init' $ lxc exec $name -- sh -c ' cd /var/lib/cloud && for d in *; do [ "$d" = "seed" ] || rm -Rf "$d"; done rm -Rf /var/log/cloud-init*' ## This is like first boot now. $ lxc exec $name reboot $ while ! lxc exec $name -- [ -e /run/cloud-init/result.json ]; do sleep 1; done ## The services should show active $ lxc exec $name -- journalctl | grep Break || echo Good, no breaks $ lxc exec $name -- systemctl --no-pager status cloud-final.service $ lxc exec $name -- systemctl --no-pager status cloud-init.target [Regression Potential] Playing with boot order can cause problems. Regression would be around some targets not running. On a booted system this would show itself inx journalctl | grep -i Break or journalctl | grep -i ordering ==== End SRU Template ==== With current yakkety cloud images (at least in Scalingstack), I often run into this dependency cycle at boot: Sep 15 09:28:51 ubuntu systemd[1]: cloud-init.target: Found ordering cycle on cloud-init.target/start Sep 15 09:28:51 ubuntu systemd[1]: cloud-init.target: Found dependency on cloud-final.service/start Sep 15 09:28:51 ubuntu systemd[1]: cloud-init.target: Found dependency on multi-user.target/start Sep 15 09:28:51 ubuntu systemd[1]: cloud-init.target: Found dependency on cloud-init.target/start Sep 15 09:28:51 ubuntu systemd[1]: cloud-init.target: Breaking ordering cycle by deleting job cloud-final.service/start Sep 15 09:28:51 ubuntu systemd[1]: cloud-final.service: Job cloud-final.service/start deleted to break ordering cycle starting with cloud-init.target/start ● cloud-final.service - Execute cloud user/final scripts    Loaded: loaded (/lib/systemd/system/cloud-final.service; enabled; vendor preset: enabled)    Active: inactive (dead) Thus /var/lib/cloud/instance/boot-finished never gets written and thus waiting for an instance to init just times out. This is with the most recent https://launchpad.net/ubuntu/+source/cloud-init/0.7.7-31-g65ace7b-0ubuntu1 ==== Begin SRU Template ==== [Impact] As part of the change in bug 1576692, we made cloud-final.target run After multi-user.target. That created a dependency loop between cloud-init.target and multi-user.target and cloud-final.target. Most of the time systemd would break that loop by dropping cloud-init.target. But sometimes, it would break the loop by dropping cloud-final.target, which would mean that user scripts do not run and generally cloud-init doesn't finish. [Test Case] ## Failure in a xenial image can only be reproduced by ## patching an image up to the previous xenial-proposed upload ## (0.7.7-31-g65ace7b-0ubuntu1~16.04.1), then cleaning it ## and then restarting. We will focus on verifying there is not ## a problem. ## Launch an instance and patch it up to xenial-proposed $ release=xenial $ name=x1 $ lxc launch ubuntu-daily:$release $name # wait for it to boot $ while ! lxc exec $name -- [ -e /run/cloud-init/result.json ]; do sleep 1; done ## Now update container, clean and reboot to show first boot $ lxc exec $name -- sh -c '     p=/etc/apt/sources.list.d/proposed.list     echo deb http://archive.ubuntu.com/ubuntu xenial-proposed main > "$p" &&     apt-get update -q && apt-get -qy install cloud-init' $ lxc exec $name -- sh -c '     cd /var/lib/cloud && for d in *; do [ "$d" = "seed" ] || rm -Rf "$d"; done     rm -Rf /var/log/cloud-init*' ## This is like first boot now. $ lxc exec $name reboot $ while ! lxc exec $name -- [ -e /run/cloud-init/result.json ]; do sleep 1; done ## The services should show active $ lxc exec $name -- journalctl | grep Break || echo Good, no breaks $ lxc exec $name -- systemctl --no-pager status cloud-final.service $ lxc exec $name -- systemctl --no-pager status cloud-init.target [Regression Potential] Playing with boot order can cause problems. Regression would be around some targets not running. On a booted system this would show itself inx   journalctl | grep -i Break or   journalctl | grep -i ordering ==== End SRU Template ==== With current yakkety cloud images (at least in Scalingstack), I often run into this dependency cycle at boot: Sep 15 09:28:51 ubuntu systemd[1]: cloud-init.target: Found ordering cycle on cloud-init.target/start Sep 15 09:28:51 ubuntu systemd[1]: cloud-init.target: Found dependency on cloud-final.service/start Sep 15 09:28:51 ubuntu systemd[1]: cloud-init.target: Found dependency on multi-user.target/start Sep 15 09:28:51 ubuntu systemd[1]: cloud-init.target: Found dependency on cloud-init.target/start Sep 15 09:28:51 ubuntu systemd[1]: cloud-init.target: Breaking ordering cycle by deleting job cloud-final.service/start Sep 15 09:28:51 ubuntu systemd[1]: cloud-final.service: Job cloud-final.service/start deleted to break ordering cycle starting with cloud-init.target/start ● cloud-final.service - Execute cloud user/final scripts    Loaded: loaded (/lib/systemd/system/cloud-final.service; enabled; vendor preset: enabled)    Active: inactive (dead) Thus /var/lib/cloud/instance/boot-finished never gets written and thus waiting for an instance to init just times out. This is with the most recent https://launchpad.net/ubuntu/+source/cloud-init/0.7.7-31-g65ace7b-0ubuntu1 Related bugs: * bug 1576692: fully support package installation in systemd
2016-09-15 15:14:33 Launchpad Janitor cloud-init (Ubuntu): status Confirmed Fix Released
2016-09-17 02:38:26 Scott Moser tags regression-release verification-needed yakkety regression-release verification-done yakkety
2016-09-22 11:28:07 Dominique Poulain bug added subscriber Dominique Poulain
2016-09-22 17:34:08 Launchpad Janitor cloud-init (Ubuntu Xenial): status Fix Committed Fix Released
2016-09-22 17:36:05 Chris J Arges removed subscriber Ubuntu Stable Release Updates Team
2016-12-23 17:42:17 Scott Moser bug task added cloud-init
2016-12-23 17:42:33 Scott Moser cloud-init: status New Fix Released
2023-05-10 17:00:58 James Falcon bug watch added https://github.com/canonical/cloud-init/issues/2728