From b50f6dbe574b0421db7dbf200ad951186382277d Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Wed, 9 Apr 2025 22:10:42 +0900 Subject: [PATCH] core/socket: do not enter failed state when we cannot start service due to conflicting transaction being queued Otherwise, e.g. on soft-reboot, socket unit may enter the failed state and the socket buffer will be cleared. --- src/core/socket.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/core/socket.c b/src/core/socket.c index 861aaba3d44..7bff0a2d03a 100644 --- a/src/core/socket.c +++ b/src/core/socket.c @@ -2356,6 +2356,8 @@ static void socket_enter_running(Socket *s, int cfd_in) { } r = manager_add_job(UNIT(s)->manager, JOB_START, UNIT_DEREF(s->service), JOB_REPLACE, &error, /* ret = */ NULL); + if (r == -EDEADLK) + return (void) log_unit_debug_errno(UNIT(s), r, "Failed to queue service startup job, ignoring: %s", bus_error_message(&error, r)); if (r < 0) goto queue_error; } -- 2.47.3