mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-12-24 21:34:08 +03:00
bus: when a busname unit refuses to activate a service it should flush the queue
This commit is contained in:
parent
010b2b8d7a
commit
16ac401407
@ -197,6 +197,8 @@ static void busname_unwatch_fd(BusName *n) {
|
||||
static void busname_close_fd(BusName *n) {
|
||||
assert(n);
|
||||
|
||||
busname_unwatch_fd(n);
|
||||
|
||||
if (n->starter_fd <= 0)
|
||||
return;
|
||||
|
||||
@ -333,6 +335,11 @@ static void busname_enter_running(BusName *n) {
|
||||
|
||||
if (unit_stop_pending(UNIT(n))) {
|
||||
log_debug_unit(UNIT(n)->id, "Suppressing activation request on %s since unit stop is scheduled.", UNIT(n)->id);
|
||||
|
||||
/* Flush all queued activation reqeuest by closing and reopening the connection */
|
||||
|
||||
busname_close_fd(n);
|
||||
busname_enter_listening(n);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1475,6 +1475,13 @@ static void socket_enter_running(Socket *s, int cfd) {
|
||||
/* Flush all sockets by closing and reopening them */
|
||||
socket_close_fds(s);
|
||||
|
||||
r = socket_open_fds(s);
|
||||
if (r < 0) {
|
||||
log_warning_unit(UNIT(s)->id, "%s failed to listen on sockets: %s", UNIT(s)->id, strerror(-r));
|
||||
socket_enter_stop_pre(s, SOCKET_FAILURE_RESOURCES);
|
||||
return;
|
||||
}
|
||||
|
||||
r = socket_watch_fds(s);
|
||||
if (r < 0) {
|
||||
log_warning_unit(UNIT(s)->id, "%s failed to watch sockets: %s", UNIT(s)->id, strerror(-r));
|
||||
|
Loading…
Reference in New Issue
Block a user