From 230314d718cb68b328961c9723976e54c17d06f7 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 2 Dec 2014 00:15:13 +0100 Subject: [PATCH 1/1] core: OOM really shouldn't be considered a deserialization parse failure --- src/core/dbus.c | 9 +++++++-- src/core/manager.c | 11 +++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/core/dbus.c b/src/core/dbus.c index 79cf414ee..87da9335a 100644 --- a/src/core/dbus.c +++ b/src/core/dbus.c @@ -1144,15 +1144,20 @@ void bus_track_serialize(sd_bus_track *t, FILE *f) { int bus_track_deserialize_item(char ***l, const char *line) { const char *e; + int r; assert(l); assert(line); e = startswith(line, "subscribed="); if (!e) - return -EINVAL; + return 0; + + r = strv_extend(l, e); + if (r < 0) + return r; - return strv_extend(l, e); + return 1; } int bus_track_coldplug(Manager *m, sd_bus_track **t, char ***l) { diff --git a/src/core/manager.c b/src/core/manager.c index 7b2550065..5fbb375cd 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -2394,8 +2394,15 @@ int manager_deserialize(Manager *m, FILE *f, FDSet *fds) { m->kdbus_fd = fdset_remove(fds, fd); } - } else if (bus_track_deserialize_item(&m->deserialized_subscribed, l) < 0) - log_warning("Unknown serialization item '%s'", l); + } else { + int k; + + k = bus_track_deserialize_item(&m->deserialized_subscribed, l); + if (k < 0) + log_debug_errno(k, "Failed to deserialize bus tracker object: %m"); + else if (k == 0) + log_debug("Unknown serialization item '%s'", l); + } } for (;;) { -- 2.30.2