From acd4171deb5027c46f1c71ee18144e1e3580c2da Mon Sep 17 00:00:00 2001 From: MSVSphere Packaging Team Date: Wed, 24 Jul 2024 03:38:45 +0300 Subject: [PATCH] import pcs-0.11.7-2.el9_4.1 --- ...e-forkserver-process-creation-method.patch | 37 ++++++++++++++++ ...5237-02-fix-logging-handlers-imports.patch | 43 +++++++++++++++++++ SPECS/pcs.spec | 10 ++++- 3 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 SOURCES/RHEL-45237-01-use-forkserver-process-creation-method.patch create mode 100644 SOURCES/RHEL-45237-02-fix-logging-handlers-imports.patch diff --git a/SOURCES/RHEL-45237-01-use-forkserver-process-creation-method.patch b/SOURCES/RHEL-45237-01-use-forkserver-process-creation-method.patch new file mode 100644 index 0000000..099d2bb --- /dev/null +++ b/SOURCES/RHEL-45237-01-use-forkserver-process-creation-method.patch @@ -0,0 +1,37 @@ +From 3b116169ec0f2213968780b6a2e3a85743a1a30f Mon Sep 17 00:00:00 2001 +From: Miroslav Lisik +Date: Thu, 21 Mar 2024 13:32:10 +0100 +Subject: [PATCH] Use 'forkserver' process creation method for multiprocessing + +* 'fork' method could cause deadlock in multiprocessing.pool.Pool on + terminate (https://github.com/python/cpython/issues/73945) +* https://docs.python.org/3/library/multiprocessing.html#contexts-and-start-methods +--- + pcs/daemon/run.py | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/pcs/daemon/run.py b/pcs/daemon/run.py +index 5fa083fd..cecce750 100644 +--- a/pcs/daemon/run.py ++++ b/pcs/daemon/run.py +@@ -1,3 +1,4 @@ ++import multiprocessing as mp + import os + import signal + import socket +@@ -157,6 +158,12 @@ def _print_version(argv: StringCollection) -> None: + + + def main(argv=None) -> None: ++ # set the way how processes are started ++ # https://docs.python.org/3/library/multiprocessing.html#contexts-and-start-methods ++ # avoid deadlock in multiprocessing.pool.Pool on terminate ++ # https://github.com/python/cpython/issues/73945 ++ mp.set_start_method(method="forkserver") ++ + argv = argv if argv is not None else sys.argv[1:] + if "--version" in argv: + _print_version(argv) +-- +2.45.2 + diff --git a/SOURCES/RHEL-45237-02-fix-logging-handlers-imports.patch b/SOURCES/RHEL-45237-02-fix-logging-handlers-imports.patch new file mode 100644 index 0000000..2afbe94 --- /dev/null +++ b/SOURCES/RHEL-45237-02-fix-logging-handlers-imports.patch @@ -0,0 +1,43 @@ +From 661183b7352ee3e1d13398ad7571db1f811da50d Mon Sep 17 00:00:00 2001 +From: Miroslav Lisik +Date: Fri, 22 Mar 2024 15:01:19 +0100 +Subject: [PATCH] fix logging handlers imports + +* https://stackoverflow.com/questions/64951836/python-logging-attributeerror-module-logging-has-no-attribute-handlers/65814814#65814814 +--- + pcs/daemon/async_tasks/worker/logging.py | 3 ++- + pcs/daemon/log.py | 1 + + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/pcs/daemon/async_tasks/worker/logging.py b/pcs/daemon/async_tasks/worker/logging.py +index cf5fb287..1319d651 100644 +--- a/pcs/daemon/async_tasks/worker/logging.py ++++ b/pcs/daemon/async_tasks/worker/logging.py +@@ -1,4 +1,5 @@ + import logging ++import logging.handlers + import multiprocessing as mp + import os + +@@ -44,7 +45,7 @@ def setup_worker_logger(queue: mp.Queue) -> logging.Logger: + logger = logging.getLogger(WORKER_LOGGER) + logger.setLevel(logging.DEBUG) + +- queue_handler = logging.handlers.QueueHandler(queue) # type: ignore ++ queue_handler = logging.handlers.QueueHandler(queue) + logger.addHandler(queue_handler) + + return logger +diff --git a/pcs/daemon/log.py b/pcs/daemon/log.py +index 07ca764a..a38cbbdf 100644 +--- a/pcs/daemon/log.py ++++ b/pcs/daemon/log.py +@@ -1,4 +1,5 @@ + import logging ++import logging.handlers + + LOGGER_NAMES = [ + "pcs.daemon", +-- +2.45.2 + diff --git a/SPECS/pcs.spec b/SPECS/pcs.spec index 8fe3ab0..98f8c3f 100644 --- a/SPECS/pcs.spec +++ b/SPECS/pcs.spec @@ -1,6 +1,6 @@ Name: pcs Version: 0.11.7 -Release: 2%{?dist} +Release: 2%{?dist}.1 # https://docs.fedoraproject.org/en-US/packaging-guidelines/LicensingGuidelines/ # https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#Good_Licenses # GPL-2.0-only: pcs @@ -101,6 +101,8 @@ Source101: https://github.com/ClusterLabs/pcs-web-ui/releases/download/%{ui_comm # pcs patches: <= 200 # Patch0: bzNUMBER-01-name.patch Patch0: do-not-support-cluster-setup-with-udp-u-transport.patch +Patch1: RHEL-45237-01-use-forkserver-process-creation-method.patch +Patch2: RHEL-45237-02-fix-logging-handlers-imports.patch # ui patches: >200 # Patch201: bzNUMBER-01-name.patch @@ -293,6 +295,8 @@ update_times_patch(){ %autopatch -p1 -M 200 # update_times_patch %%{PATCH0} update_times_patch %{PATCH0} +update_times_patch %{PATCH1} +update_times_patch %{PATCH2} # generate .tarball-version if building from an untagged commit, not a released version # autogen uses git-version-gen which uses .tarball-version for generating version number @@ -536,6 +540,10 @@ run_all_tests %license pyagentx_LICENSE.txt %changelog +* Tue Jul 2 2024 Michal Pospisil - 0.11.7-2.el9_4.1 +- Avoid deadlock on pcsd termination + Resolves: RHEL-45237 + * Tue Mar 19 2024 Michal Pospisil - 0.11.7-2 - Fixed CVE-2024-25126, CVE-2024-26141, CVE-2024-26146 in bundled dependency rack Resolves: RHEL-26446, RHEL-26448, RHEL-26450