Public bug reported:

[Impact]

 * 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

[Service]
ExecStartPre=/usr/sbin/xe-linux-distribution /var/cache/xe-linux-distribution
ExecStart=/usr/sbin/xe-daemon
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

= Minimal fix =

--- xe-guest-utilities.xe-daemon.service.old    2017-03-03 11:45:48.679700766 
+0000
+++ xe-guest-utilities.xe-daemon.service        2017-03-03 11:46:07.923549054 
+0000
@@ -1,5 +1,6 @@
 [Unit]
 Description=Xen Guest Monitoring Agent
+DefaultDependencies=no
 After=local-fs.target
 Requires=proc-xen.mount
 Before=network.target cloud-init.service cloud-init-local.service

= Become a normal unit fix =

--- xe-guest-utilities.xe-daemon.service.old    2017-03-03 11:45:48.679700766 
+0000
+++ xe-guest-utilities.xe-daemon.service        2017-03-03 11:47:44.842785194 
+0000
@@ -1,8 +1,6 @@
 [Unit]
 Description=Xen Guest Monitoring Agent
-After=local-fs.target
-Requires=proc-xen.mount
-Before=network.target cloud-init.service cloud-init-local.service
+Before=cloud-config.target
 ConditionVirtualization=xen
 ConditionPathExists=/proc/xen/capabilities
 
@@ -13,3 +11,4 @@
 
 [Install]
 WantedBy=multi-user.target
+WantedBy=cloud-config.target

==

[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

** Affects: xe-guest-utilities (Ubuntu)
     Importance: Undecided
         Status: New

** Affects: xe-guest-utilities (Ubuntu Xenial)
     Importance: Undecided
         Status: New

** Affects: xe-guest-utilities (Ubuntu Yakkety)
     Importance: Undecided
         Status: New

** Affects: xe-guest-utilities (Ubuntu Zesty)
     Importance: Undecided
         Status: New

** Also affects: xe-guest-utilities (Ubuntu Zesty)
   Importance: Undecided
       Status: New

** Also affects: xe-guest-utilities (Ubuntu Yakkety)
   Importance: Undecided
       Status: New

** Also affects: xe-guest-utilities (Ubuntu Xenial)
   Importance: Undecided
       Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1669755

Title:
  Circular boot dependency cycle with cloud-init et.al.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/xe-guest-utilities/+bug/1669755/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to