[meta-virtualization] [PATCH] ceph: fix ceph-crash failed with /var/lib/ceph/crash/posted not found

Hongzhi.Song hongzhi.song at windriver.com
Tue Sep 10 20:26:11 PDT 2019


root at intelx86-64: journalctl -xe
ceph-crash[854]: ERROR:_main_:directory /var/lib/ceph/crash/posted does
not exist; please create

Create the directory for both of systemd and sysvinit

Signed-off-by: Hongzhi.Song <hongzhi.song at windriver.com>
---
 recipes-extended/ceph/ceph_14.2.3.bb | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/recipes-extended/ceph/ceph_14.2.3.bb b/recipes-extended/ceph/ceph_14.2.3.bb
index 722efe3..25a8ea2 100644
--- a/recipes-extended/ceph/ceph_14.2.3.bb
+++ b/recipes-extended/ceph/ceph_14.2.3.bb
@@ -81,12 +81,36 @@ do_install_append () {
 	rm ${D}${systemd_unitdir}/system/ceph-fuse.target ${D}${systemd_unitdir}/system/ceph-fuse at .service
 }
 
+do_install_append_class-target () {
+	if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+		install -d ${D}${sysconfdir}/tmpfiles.d
+		echo "d /var/lib/ceph/crash/posted 0755 root root - -" > ${D}${sysconfdir}/tmpfiles.d/ceph-placeholder.conf
+	fi
+
+	if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+		install -d ${D}${sysconfdir}/default/volatiles
+		echo "d root root 0755 /var/lib/ceph/crash/posted none" > ${D}${sysconfdir}/default/volatiles/99_ceph-placeholder
+	fi
+}
+
+pkg_postinst_${PN}() {
+	if [ -z "$D" ] && [ -e ${sysconfdir}/init.d/populate-volatile.sh ] ; then
+		${sysconfdir}/init.d/populate-volatile.sh update
+	fi
+}
+
 FILES_${PN} += "\
 		${libdir}/rados-classes/*.so.* \
 		${libdir}/ceph/compressor/*.so \
 		${libdir}/rados-classes/*.so \
 		${libdir}/ceph/*.so \
 "
+
+FILES_${PN} += " \
+    /etc/tmpfiles.d/ceph-placeholder.conf \
+    /etc/default/volatiles/99_ceph-placeholder \
+"
+
 FILES_${PN}-python = "\
                 ${PYTHON_SITEPACKAGES_DIR}/* \
 "
-- 
2.23.0



More information about the meta-virtualization mailing list