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.
This commit is contained in:
Yu Watanabe
2025-04-09 22:10:42 +09:00
parent 9af70339aa
commit b50f6dbe57

View File

@@ -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;
}