Circular boot dependency cycle with cloud-init et.al.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
xe-guest-utilities (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Xenial |
Triaged
|
Undecided
|
Unassigned | ||
Yakkety |
Triaged
|
Undecided
|
Unassigned | ||
Zesty |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
[Impact]
* xe-deamon.service tries to be an early boot unit; before cloud-init-local / networking is setup
* However it does not declare DefaultDependen
* xe-deamon should declare DefaultDependen
= Current unit =
[Unit]
Description=Xen Guest Monitoring Agent
After=local-
Requires=
Before=
ConditionVirtua
ConditionPathEx
[Service]
ExecStartPre=
ExecStart=
StandardOutput=
[Install]
WantedBy=
= Proposed fix =
--- xe-guest-
+++ xe-guest-
@@ -1,5 +1,6 @@
[Unit]
Description=Xen Guest Monitoring Agent
+DefaultDepende
After=
Requires=
Before=
==
[Test Case]
* Boot a cloud instance, with xen hypervisor and cloud-init metdata
* There should be no boot cycles
[Regression Potential]
* Minimal, currently xe-daemon.service creates dependency cycles which prevent reliable and reproducible boots.
[Other Info]
* Related bug #1496730
[Dependency cycle]
Mar 03 12:01:15 slmeta1 systemd[1]: basic.target: Found ordering cycle on basic.target/start
Mar 03 12:01:15 slmeta1 systemd[1]: basic.target: Found dependency on sockets.
Mar 03 12:01:15 slmeta1 systemd[1]: basic.target: Found dependency on snapd.socket/start
Mar 03 12:01:15 slmeta1 systemd[1]: basic.target: Found dependency on sysinit.
Mar 03 12:01:15 slmeta1 systemd[1]: basic.target: Found dependency on cloud-init.
Mar 03 12:01:15 slmeta1 systemd[1]: basic.target: Found dependency on cloud-init-
Mar 03 12:01:15 slmeta1 systemd[1]: basic.target: Found dependency on xe-daemon.
Mar 03 12:01:15 slmeta1 systemd[1]: basic.target: Found dependency on basic.target/start
Mar 03 12:01:15 slmeta1 systemd[1]: basic.target: Breaking ordering cycle by deleting job sockets.
Mar 03 12:01:15 slmeta1 systemd[1]: sockets.target: Job sockets.
Mar 03 12:01:15 slmeta1 systemd[1]: basic.target: Found ordering cycle on basic.target/start
Mar 03 12:01:15 slmeta1 systemd[1]: basic.target: Found dependency on sysinit.
Mar 03 12:01:15 slmeta1 systemd[1]: basic.target: Found dependency on cloud-init.
Mar 03 12:01:15 slmeta1 systemd[1]: basic.target: Found dependency on cloud-init-
Mar 03 12:01:15 slmeta1 systemd[1]: basic.target: Found dependency on xe-daemon.
Mar 03 12:01:15 slmeta1 systemd[1]: basic.target: Found dependency on basic.target/start
Mar 03 12:01:15 slmeta1 systemd[1]: basic.target: Breaking ordering cycle by deleting job cloud-init.
Mar 03 12:01:15 slmeta1 systemd[1]: cloud-init.service: Job cloud-init.
Mar 03 12:01:15 slmeta1 systemd[1]: basic.target: Found ordering cycle on basic.target/start
Mar 03 12:01:15 slmeta1 systemd[1]: basic.target: Found dependency on sysinit.
Mar 03 12:01:15 slmeta1 systemd[1]: basic.target: Found dependency on cloud-init-
Mar 03 12:01:15 slmeta1 systemd[1]: basic.target: Found dependency on xe-daemon.
Mar 03 12:01:15 slmeta1 systemd[1]: basic.target: Found dependency on basic.target/start
Mar 03 12:01:15 slmeta1 systemd[1]: basic.target: Breaking ordering cycle by deleting job cloud-init-
Mar 03 12:01:15 slmeta1 systemd[1]: cloud-init-
description: | updated |
Changed in xe-guest-utilities (Ubuntu Zesty): | |
status: | New → Fix Committed |
Changed in xe-guest-utilities (Ubuntu Yakkety): | |
status: | New → Triaged |
Changed in xe-guest-utilities (Ubuntu Xenial): | |
status: | New → Triaged |
I'd vote for the "DefaultDepende ncies=no" option as per experience with this RAX issue: /bugs.launchpad .net/cpc- rax/+bug/ 1657223
https:/