diff --git a/0002-lvmdbusd-Correct-locking-for-_common_log.patch b/0002-lvmdbusd-Correct-locking-for-_common_log.patch new file mode 100644 index 0000000..38b4061 --- /dev/null +++ b/0002-lvmdbusd-Correct-locking-for-_common_log.patch @@ -0,0 +1,42 @@ +From da1255cdb68ab33a90136ebbec2fa0fda034f6a2 Mon Sep 17 00:00:00 2001 +From: Tony Asleson +Date: Thu, 30 Mar 2023 10:07:13 -0500 +Subject: [PATCH 2/3] lvmdbusd: Correct locking for _common_log +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Reduce the lock time and include the flush in the lock. + +Reported by: Zbigniew Jędrzejewski-Szmek +--- + daemons/lvmdbusd/utils.py | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/daemons/lvmdbusd/utils.py b/daemons/lvmdbusd/utils.py +index 6013b656f..fdd7578c1 100644 +--- a/daemons/lvmdbusd/utils.py ++++ b/daemons/lvmdbusd/utils.py +@@ -323,16 +323,17 @@ def _format_log_entry(msg): + + + def _common_log(msg, *attributes): +- cfg.stdout_lock.acquire() + msg = _format_log_entry(msg) + ++ cfg.stdout_lock.acquire() ++ + if STDOUT_TTY and attributes: + print(color(msg, *attributes)) + else: + print(msg) + +- cfg.stdout_lock.release() + sys.stdout.flush() ++ cfg.stdout_lock.release() + + + # Serializes access to stdout to prevent interleaved output +-- +2.39.2 + diff --git a/0003-lvmdbusd-Correct-seg.-fault-on-s390x-ELN.patch b/0003-lvmdbusd-Correct-seg.-fault-on-s390x-ELN.patch new file mode 100644 index 0000000..f877db6 --- /dev/null +++ b/0003-lvmdbusd-Correct-seg.-fault-on-s390x-ELN.patch @@ -0,0 +1,47 @@ +From feb7c701aa86fda1f13f6c262770a8e90e8ddb09 Mon Sep 17 00:00:00 2001 +From: Tony Asleson +Date: Thu, 30 Mar 2023 10:10:23 -0500 +Subject: [PATCH 3/3] lvmdbusd: Correct seg. fault on s390x ELN + +syscall 186 is specific to x86 64bit. As this is different from arch +to arch and between same arch different arch size we will only grab +thread ID using built-in python support if it is supported. + +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2166931 +--- + daemons/lvmdbusd/utils.py | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +diff --git a/daemons/lvmdbusd/utils.py b/daemons/lvmdbusd/utils.py +index fdd7578c1..27b869c13 100644 +--- a/daemons/lvmdbusd/utils.py ++++ b/daemons/lvmdbusd/utils.py +@@ -11,7 +11,6 @@ import xml.etree.ElementTree as Et + import sys + import inspect + import collections +-import ctypes + import errno + import fcntl + import os +@@ -305,8 +304,16 @@ class DebugMessages(object): + self.queue.clear() + + ++def _get_tid(): ++ try: ++ # Only 3.8 and later have this ++ return threading.get_native_id() ++ except: ++ return -1 ++ ++ + def _format_log_entry(msg): +- tid = ctypes.CDLL('libc.so.6').syscall(186) ++ tid = _get_tid() + + if not cfg.systemd and STDOUT_TTY: + msg = "%s: %d:%d - %s" % \ +-- +2.39.2 + diff --git a/lvm2.spec b/lvm2.spec index e480219..5c22471 100644 --- a/lvm2.spec +++ b/lvm2.spec @@ -45,15 +45,16 @@ Name: lvm2 Epoch: %{rhel} %endif Version: 2.03.20 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv2 URL: https://sourceware.org/lvm2/ Source0: https://sourceware.org/pub/lvm2/releases/LVM2.%{version}.tgz # https://bugzilla.redhat.com/show_bug.cgi?id=2180557 # https://github.com/lvmteam/lvm2/pull/114 # Fix an invalid import which breaks lvm2-lvmdbusd.service and thus anaconda -Patch0: 0001-Fix-import-of-utils-from-lvmdbusd.cfg.patch -#Patch1: 0001-* +Patch1: 0001-Fix-import-of-utils-from-lvmdbusd.cfg.patch +Patch2: 0002-lvmdbusd-Correct-locking-for-_common_log.patch +Patch3: 0003-lvmdbusd-Correct-seg.-fault-on-s390x-ELN.patch BuildRequires: make BuildRequires: gcc @@ -107,7 +108,6 @@ or more physical volumes and creating one or more logical volumes %prep %autosetup -p1 -n LVM2.%{version} -#%%patch1 -p1 -b .backup1 %build %global _default_pid_dir /run @@ -660,6 +660,9 @@ An extensive functional testsuite for LVM2. %endif %changelog +* Tue Apr 04 2023 Marian Csontos - 2.03.20-3 +- Fix segfault in lvmdbusd on s390x. + * Tue Mar 21 2023 Adam Williamson - 2.03.20-2 - Backport PR #114 to fix #2180557