parent
9c98c62e18
commit
788522832f
@ -0,0 +1,53 @@
|
||||
From e20fddc3c5769ad1babb24392500264de6db59b6 Mon Sep 17 00:00:00 2001
|
||||
From: Michal Sekletar <msekleta@redhat.com>
|
||||
Date: Tue, 30 Jul 2024 16:22:03 +0200
|
||||
Subject: [PATCH] socket: fix socket activation of stopped services with pinned
|
||||
FD store
|
||||
|
||||
(cherry picked from commit 941a12dcba57f6673230a9c413738c51374d2998)
|
||||
|
||||
Resolves: RHEL-60896
|
||||
---
|
||||
src/core/socket.c | 4 ++--
|
||||
.../units/TEST-04-JOURNAL.stopped-socket-activation.sh | 10 ++++++++++
|
||||
2 files changed, 12 insertions(+), 2 deletions(-)
|
||||
create mode 100755 test/units/TEST-04-JOURNAL.stopped-socket-activation.sh
|
||||
|
||||
diff --git a/src/core/socket.c b/src/core/socket.c
|
||||
index 41147d4bf7..0694fe7aad 100644
|
||||
--- a/src/core/socket.c
|
||||
+++ b/src/core/socket.c
|
||||
@@ -2481,7 +2481,7 @@ static int socket_start(Unit *u) {
|
||||
/* If the service is already active we cannot start the
|
||||
* socket */
|
||||
if (!IN_SET(service->state,
|
||||
- SERVICE_DEAD, SERVICE_DEAD_BEFORE_AUTO_RESTART, SERVICE_FAILED, SERVICE_FAILED_BEFORE_AUTO_RESTART,
|
||||
+ SERVICE_DEAD, SERVICE_DEAD_BEFORE_AUTO_RESTART, SERVICE_DEAD_RESOURCES_PINNED, SERVICE_FAILED, SERVICE_FAILED_BEFORE_AUTO_RESTART,
|
||||
SERVICE_AUTO_RESTART, SERVICE_AUTO_RESTART_QUEUED))
|
||||
return log_unit_error_errno(u, SYNTHETIC_ERRNO(EBUSY),
|
||||
"Socket service %s already active, refusing.", UNIT(service)->id);
|
||||
@@ -3369,7 +3369,7 @@ static void socket_trigger_notify(Unit *u, Unit *other) {
|
||||
return;
|
||||
|
||||
if (IN_SET(SERVICE(other)->state,
|
||||
- SERVICE_DEAD, SERVICE_DEAD_BEFORE_AUTO_RESTART, SERVICE_FAILED, SERVICE_FAILED_BEFORE_AUTO_RESTART,
|
||||
+ SERVICE_DEAD, SERVICE_DEAD_BEFORE_AUTO_RESTART, SERVICE_DEAD_RESOURCES_PINNED, SERVICE_FAILED, SERVICE_FAILED_BEFORE_AUTO_RESTART,
|
||||
SERVICE_FINAL_SIGTERM, SERVICE_FINAL_SIGKILL,
|
||||
SERVICE_AUTO_RESTART, SERVICE_AUTO_RESTART_QUEUED))
|
||||
socket_enter_listening(s);
|
||||
diff --git a/test/units/TEST-04-JOURNAL.stopped-socket-activation.sh b/test/units/TEST-04-JOURNAL.stopped-socket-activation.sh
|
||||
new file mode 100755
|
||||
index 0000000000..083f5fa055
|
||||
--- /dev/null
|
||||
+++ b/test/units/TEST-04-JOURNAL.stopped-socket-activation.sh
|
||||
@@ -0,0 +1,10 @@
|
||||
+#!/usr/bin/env bash
|
||||
+# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
+set -eux
|
||||
+set -o pipefail
|
||||
+
|
||||
+systemctl stop systemd-journald.service
|
||||
+systemd-cat date
|
||||
+
|
||||
+# shellcheck disable=SC2016
|
||||
+timeout 30 bash -xec 'until test "$(systemctl show -p SubState --value systemd-journald.service)" = "running"; do sleep 1; done'
|
@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
|
||||
#
|
||||
# It is highly advisable to create own systemd services or udev rules
|
||||
# to run scripts during boot instead of using this file.
|
||||
#
|
||||
# In contrast to previous versions due to parallel execution during boot
|
||||
# this script will NOT be run after all other services.
|
||||
#
|
||||
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
|
||||
# that this script will be executed during boot.
|
||||
|
||||
touch /var/lock/subsys/local
|
@ -0,0 +1,8 @@
|
||||
# This file is part of systemd.
|
||||
#
|
||||
# systemd is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU Lesser General Public License as published by
|
||||
# the Free Software Foundation; either version 2.1 of the License, or
|
||||
# (at your option) any later version.
|
||||
|
||||
u systemd-resolve 193 "systemd Resolver"
|
Loading…
Reference in new issue