On Tue, 06.05.14 19:08, Michael Marineau (michael.marin...@coreos.com) wrote:
> 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. Oh yuck! This is quite some bug, which I figure is the source of quite a few bug reports we had where people were reloading the daemon during the boot process... I commited a different fix now which avoids installing stub callbacks, and simply fixes to the core always serialize the job regardless if the unit has anything else to serialize... Please test! > --- > 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, > Lennart -- Lennart Poettering, Red Hat _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel