parent
84141919ce
commit
e507530bd3
@ -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