* xe-deamon.service tries to be an early boot unit; before cloud-init-local / networking is setup
* However it does not declare DefaultDependencies=no, and thus tries to pull in sysinit.target which should happen after cloud-init-local; yet xe-daemon.service is declared to be before cloud-init-local, thus this is a conflict of interest.
* Either xe-deamon should declare DefaultDependencies=no, or just become a regular unit wanted by multi-user.target and the cloud-config.target
= Current unit =
[Unit]
Description=Xen Guest Monitoring Agent
After=local-fs.target
Requires=proc-xen.mount
Before=network.target cloud-init.service cloud-init-local.service
ConditionVirtualization=xen
ConditionPathExists=/proc/xen/capabilities
* Boot a cloud instance, with xen hypervisor and cloud-init metdata
* There should be no boot cycles
[Regression Potential]
* Depending choice of the fix, xe-daemon might be starting earlier or later.
* Some history checking is required, if xe-daemon must run before cloud-init-local or not
* Or if e.g. we only care for ExecStartPre= to run before cloud-init-local
[Impact]
* xe-deamon.service tries to be an early boot unit; before cloud-init-local / networking is setup cies=no, and thus tries to pull in sysinit.target which should happen after cloud-init-local; yet xe-daemon.service is declared to be before cloud-init-local, thus this is a conflict of interest. cies=no, or just become a regular unit wanted by multi-user.target and the cloud-config.target
* However it does not declare DefaultDependen
* Either xe-deamon should declare DefaultDependen
= Current unit = fs.target proc-xen. mount network. target cloud-init.service cloud-init- local.service lization= xen ists=/proc/ xen/capabilitie s
[Unit]
Description=Xen Guest Monitoring Agent
After=local-
Requires=
Before=
ConditionVirtua
ConditionPathEx
[Service] /usr/sbin/ xe-linux- distribution /var/cache/ xe-linux- distribution /usr/sbin/ xe-daemon journal+ console
ExecStartPre=
ExecStart=
StandardOutput=
[Install] multi-user. target
WantedBy=
= Minimal fix =
--- xe-guest- utilities. xe-daemon. service. old 2017-03-03 11:45:48.679700766 +0000 utilities. xe-daemon. service 2017-03-03 11:46:07.923549054 +0000 ncies=no local-fs. target proc-xen. mount network. target cloud-init.service cloud-init- local.service
+++ xe-guest-
@@ -1,5 +1,6 @@
[Unit]
Description=Xen Guest Monitoring Agent
+DefaultDepende
After=
Requires=
Before=
= Become a normal unit fix =
--- xe-guest- utilities. xe-daemon. service. old 2017-03-03 11:45:48.679700766 +0000 utilities. xe-daemon. service 2017-03-03 11:47:44.842785194 +0000 local-fs. target proc-xen. mount network. target cloud-init.service cloud-init- local.service cloud-config. target alization= xen xists=/ proc/xen/ capabilities
+++ xe-guest-
@@ -1,8 +1,6 @@
[Unit]
Description=Xen Guest Monitoring Agent
-After=
-Requires=
-Before=
+Before=
ConditionVirtu
ConditionPathE
@@ -13,3 +11,4 @@
[Install] multi-user. target cloud-config. target
WantedBy=
+WantedBy=
==
[Test Case]
* Boot a cloud instance, with xen hypervisor and cloud-init metdata
* There should be no boot cycles
[Regression Potential]
* Depending choice of the fix, xe-daemon might be starting earlier or later.
* Some history checking is required, if xe-daemon must run before cloud-init-local or not
* Or if e.g. we only care for ExecStartPre= to run before cloud-init-local
[Other Info]
* Related bug #1496730