mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-19 05:21:23 +02:00
fix(sys-apps/systemd): Fix hangs/failures in initrd
This bug manifested itself as a silent hang without the other reload fix. With that fix it manifests itself as fsck failing because it is started before the disk/by-* symlinks are created.
This commit is contained in:
parent
92f3f446a8
commit
a05fcc794b
@ -0,0 +1,57 @@
|
|||||||
|
From 5572e8cef02a1d769a94c5da4c407c0f472535f2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Michael Marineau <michael.marineau@coreos.com>
|
||||||
|
Date: Tue, 6 May 2014 18:39:59 -0700
|
||||||
|
Subject: [PATCH] device: Add stub serialization methods to enable job
|
||||||
|
serialization.
|
||||||
|
|
||||||
|
If a unit type doesn't provide its own serialization methods then
|
||||||
|
none of the generic serialization will happen either. For devices this
|
||||||
|
means jobs used for waiting on device dependencies are dropped during
|
||||||
|
reloads, breaking dependency state that was relying on those jobs.
|
||||||
|
---
|
||||||
|
src/core/device.c | 22 ++++++++++++++++++++++
|
||||||
|
1 file changed, 22 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/core/device.c b/src/core/device.c
|
||||||
|
index 444286e..07c0860 100644
|
||||||
|
--- a/src/core/device.c
|
||||||
|
+++ b/src/core/device.c
|
||||||
|
@@ -130,6 +130,25 @@ static void device_dump(Unit *u, FILE *f, const char *prefix) {
|
||||||
|
prefix, strna(d->sysfs));
|
||||||
|
}
|
||||||
|
|
||||||
|
+static int device_serialize(Unit *u, FILE *f, FDSet *fds) {
|
||||||
|
+ assert(u);
|
||||||
|
+ assert(f);
|
||||||
|
+ assert(fds);
|
||||||
|
+
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static int device_deserialize_item(Unit *u, const char *key, const char *value, FDSet *fds) {
|
||||||
|
+ assert(u);
|
||||||
|
+ assert(key);
|
||||||
|
+ assert(value);
|
||||||
|
+ assert(fds);
|
||||||
|
+
|
||||||
|
+ log_debug("Unknown serialization key '%s'", key);
|
||||||
|
+
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
_pure_ static UnitActiveState device_active_state(Unit *u) {
|
||||||
|
assert(u);
|
||||||
|
|
||||||
|
@@ -693,6 +712,9 @@ const UnitVTable device_vtable = {
|
||||||
|
|
||||||
|
.dump = device_dump,
|
||||||
|
|
||||||
|
+ .serialize = device_serialize,
|
||||||
|
+ .deserialize_item = device_deserialize_item,
|
||||||
|
+
|
||||||
|
.active_state = device_active_state,
|
||||||
|
.sub_state_to_string = device_sub_state_to_string,
|
||||||
|
|
||||||
|
--
|
||||||
|
1.8.5.5
|
||||||
|
|
@ -119,6 +119,9 @@ fi
|
|||||||
# fix stuck jobs after daemon-reload
|
# fix stuck jobs after daemon-reload
|
||||||
epatch "${FILESDIR}"/212-0002-unit-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch
|
epatch "${FILESDIR}"/212-0002-unit-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch
|
||||||
|
|
||||||
|
# fix broken device dependencies after daemon-reload
|
||||||
|
epatch "${FILESDIR}"/212-0003-device-add-stub-serialization-methods-to-enable-job.patch
|
||||||
|
|
||||||
# CoreOs specific hacks^Wfeatures
|
# CoreOs specific hacks^Wfeatures
|
||||||
epatch "${FILESDIR}"/211-handle-empty-etc-os-release.patch
|
epatch "${FILESDIR}"/211-handle-empty-etc-os-release.patch
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user