Fix segfault in lvmdbusd on s390x
This commit is contained in:
parent
7a015859c9
commit
5670e60d59
42
0002-lvmdbusd-Correct-locking-for-_common_log.patch
Normal file
42
0002-lvmdbusd-Correct-locking-for-_common_log.patch
Normal file
@ -0,0 +1,42 @@
|
||||
From da1255cdb68ab33a90136ebbec2fa0fda034f6a2 Mon Sep 17 00:00:00 2001
|
||||
From: Tony Asleson <tasleson@redhat.com>
|
||||
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 <zbyszek@in.waw.pl>
|
||||
---
|
||||
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
|
||||
|
47
0003-lvmdbusd-Correct-seg.-fault-on-s390x-ELN.patch
Normal file
47
0003-lvmdbusd-Correct-seg.-fault-on-s390x-ELN.patch
Normal file
@ -0,0 +1,47 @@
|
||||
From feb7c701aa86fda1f13f6c262770a8e90e8ddb09 Mon Sep 17 00:00:00 2001
|
||||
From: Tony Asleson <tasleson@redhat.com>
|
||||
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
|
||||
|
11
lvm2.spec
11
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 <mcsontos@redhat.com> - 2.03.20-3
|
||||
- Fix segfault in lvmdbusd on s390x.
|
||||
|
||||
* Tue Mar 21 2023 Adam Williamson <awilliam@redhat.com> - 2.03.20-2
|
||||
- Backport PR #114 to fix #2180557
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user