agl-lxc: Stably start lxc service after drm-lease-manager 61/27761/2 13.91.0 needlefish/13.91.0 needlefish_13.91.0
authorHiroyuki Ishii <ishii.hiroyuki002@jp.panasonic.com>
Tue, 12 Jul 2022 05:53:28 +0000 (14:53 +0900)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Thu, 14 Jul 2022 09:32:09 +0000 (09:32 +0000)
Since there is some race condition between initialization of
drm-lease-manager and startup of lxc guest images in
lxc-host-image-demo currently, we sometimes observe a startup
failure of the cluster-guest, especially on refhw platform,
due to delay of lease device creation.

This change adds unit dependencies between lxc and
drm-lease-manager so that lxc guests can be started after lease
devices creation stably.

Bug-AGL: SPEC-4427

Signed-off-by: Hiroyuki Ishii <ishii.hiroyuki002@jp.panasonic.com>
Change-Id: I16183c784d8e1132ba316f842e5dedc664ec2853

meta-agl-lxc/recipes-container/lxc/files/lxc.service [new file with mode: 0644]
meta-agl-lxc/recipes-container/lxc/lxc_%.bbappend

diff --git a/meta-agl-lxc/recipes-container/lxc/files/lxc.service b/meta-agl-lxc/recipes-container/lxc/files/lxc.service
new file mode 100644 (file)
index 0000000..acf8da3
--- /dev/null
@@ -0,0 +1,19 @@
+[Unit]
+Description=LXC Container Initialization and Autoboot Code
+After=network.target lxc-net.service remote-fs.target drm-lease-manager.service
+Wants=lxc-net.service
+Documentation=man:lxc-autostart man:lxc
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStartPre=@LIBEXECDIR@/lxc/lxc-apparmor-load
+ExecStart=@LIBEXECDIR@/lxc/lxc-containers start
+ExecStop=@LIBEXECDIR@/lxc/lxc-containers stop
+ExecReload=@LIBEXECDIR@/lxc/lxc-apparmor-load
+# Environment=BOOTUP=serial
+# Environment=CONSOLETYPE=serial
+Delegate=yes
+
+[Install]
+WantedBy=multi-user.target
index 7207849..b8456f7 100644 (file)
@@ -2,6 +2,15 @@ PACKAGECONFIG:remove = "templates"
 
 SYSTEMD_AUTO_ENABLE:${PN} = "enable"
 
+FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
+
+SRC_URI += "file://lxc.service"
+
+do_install:append () {
+    install -D -m 0644 ${WORKDIR}/lxc.service ${D}${systemd_system_unitdir}/lxc.service
+    sed -i -e 's,@LIBEXECDIR@,${libexecdir},g' ${D}${systemd_system_unitdir}/lxc.service
+}
+
 # NOTE:
 # This needs to be replaced with a rework of the upstream packaging
 # to do a proper split of core from the template support.