From 8d3cfaf54850835ee9319003828925a970439725 Mon Sep 17 00:00:00 2001 From: khromenokroman Date: Fri, 30 Oct 2026 10:20:40 +0200 Subject: [PATCH] userdbd/mountfsd/nsresourced: propagate exit status of the event loop These daemons call sd_event_exit(m->event, EXIT_FAILURE) when workers cannot be started, but run() ignored the positive return value of sd_event_loop() and returned 0, so the daemon exited successfully and the unit was not marked as failed. Return the exit status of the event loop instead. (cherry picked from commit df1c53984fd2dec38ddefed627a1f4c3aab7e5f3) (cherry picked from commit df8359f418573484354d68edd40fa1ca6a36ea6e) --- src/mountfsd/mountfsd.c | 4 ++-- src/nsresourced/nsresourced.c | 4 ++-- src/userdb/userdbd.c | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/mountfsd/mountfsd.c b/src/mountfsd/mountfsd.c index e34eb181f2d..fa2aa735dfa 100644 --- a/src/mountfsd/mountfsd.c +++ b/src/mountfsd/mountfsd.c @@ -35,7 +35,7 @@ static int run(int argc, char *argv[]) { if (r < 0) return log_error_errno(r, "Event loop failed: %m"); - return 0; + return r; } -DEFINE_MAIN_FUNCTION(run); +DEFINE_MAIN_FUNCTION_WITH_POSITIVE_FAILURE(run); diff --git a/src/nsresourced/nsresourced.c b/src/nsresourced/nsresourced.c index c261f3c550f..cbc029d072f 100644 --- a/src/nsresourced/nsresourced.c +++ b/src/nsresourced/nsresourced.c @@ -39,7 +39,7 @@ static int run(int argc, char *argv[]) { if (r < 0) return log_error_errno(r, "Event loop failed: %m"); - return 0; + return r; } -DEFINE_MAIN_FUNCTION(run); +DEFINE_MAIN_FUNCTION_WITH_POSITIVE_FAILURE(run); diff --git a/src/userdb/userdbd.c b/src/userdb/userdbd.c index f5a5eece8cd..de132bc1306 100644 --- a/src/userdb/userdbd.c +++ b/src/userdb/userdbd.c @@ -52,7 +52,7 @@ static int run(int argc, char *argv[]) { if (r < 0) return log_error_errno(r, "Event loop failed: %m"); - return 0; + return r; } -DEFINE_MAIN_FUNCTION(run); +DEFINE_MAIN_FUNCTION_WITH_POSITIVE_FAILURE(run);