Accepting request 868503 from home:hmzhao:branches:openSUSE:Factory
- lvm2 should use 'external_device_info_source="udev"' by default (bsc#1179691) - add SUSE special patch to void issues in non udev env + bug-1179691_config-set-external_device_info_source-none.patch OBS-URL: https://build.opensuse.org/request/show/868503 OBS-URL: https://build.opensuse.org/package/show/Base:System/lvm2?expand=0&rev=292
This commit is contained in:
parent
8c0ffe8cea
commit
0d02d6c2e3
@ -0,0 +1,66 @@
|
|||||||
|
From: Martin Wilck <mwilck@suse.com>
|
||||||
|
Subject: [PATCH] config: set external_device_info_source=none if udev isn't running
|
||||||
|
Date: Wed, 27 Jan 2021 18:28:59 +0100
|
||||||
|
Message-Id: <20210127172859.956-1-mwilck@suse.com>
|
||||||
|
|
||||||
|
LVM2 has several configuration options related to device detection
|
||||||
|
and udev. In particular, we have obtain_device_list_from_udev=(0|1)
|
||||||
|
and external_device_info_source=("none"|"udev"). The two options are
|
||||||
|
obviously semantically related, but it's rather unclear if and how
|
||||||
|
they interact.
|
||||||
|
|
||||||
|
If udev is unavailable, e.g. in containers, obtain_device_list_from_udev
|
||||||
|
(which defaults to 1) will be automatically reset to 0. However,
|
||||||
|
if external_device_info_source="udev" is set, this setting is not
|
||||||
|
reset to "none", leading to error messages like
|
||||||
|
|
||||||
|
Udev database has incomplete information about device /dev/vda.
|
||||||
|
/dev/vda: Failed to get external handle [udev].
|
||||||
|
|
||||||
|
This patch changes that, treating external_device_info_source the
|
||||||
|
same way as obtain_device_list_from_udev, thereby making LVM2's
|
||||||
|
device detection more consistent.
|
||||||
|
|
||||||
|
The default for external_device_info_source is "none", but I believe
|
||||||
|
there are very good reasons to change this setting to "udev", because
|
||||||
|
LVM will get detection of multipath and md devices wrong most of the
|
||||||
|
time otherwise. LVM should follow the same logic as systemd and other
|
||||||
|
system components with respect to device detection.
|
||||||
|
|
||||||
|
Signed-off-by: Martin Wilck <mwilck@suse.com>
|
||||||
|
Signed-off-by: Heming Zhao <heming.zhao@suse.com>,
|
||||||
|
---
|
||||||
|
lib/commands/toolcontext.c | 17 ++++++++++++++---
|
||||||
|
1 file changed, 14 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/commands/toolcontext.c b/lib/commands/toolcontext.c
|
||||||
|
index 63b6811..55f6806 100644
|
||||||
|
--- a/lib/commands/toolcontext.c
|
||||||
|
+++ b/lib/commands/toolcontext.c
|
||||||
|
@@ -598,9 +598,20 @@ static int _process_config(struct cmd_context *cmd)
|
||||||
|
dev_ext_info_src = find_config_tree_str(cmd, devices_external_device_info_source_CFG, NULL);
|
||||||
|
if (dev_ext_info_src && !strcmp(dev_ext_info_src, "none"))
|
||||||
|
init_external_device_info_source(DEV_EXT_NONE);
|
||||||
|
- else if (dev_ext_info_src && !strcmp(dev_ext_info_src, "udev"))
|
||||||
|
- init_external_device_info_source(DEV_EXT_UDEV);
|
||||||
|
- else {
|
||||||
|
+ else if (dev_ext_info_src && !strcmp(dev_ext_info_src, "udev")) {
|
||||||
|
+ /*
|
||||||
|
+ * Override existing config and hardcode external_device_info_source==none if:
|
||||||
|
+ * - udev is not running
|
||||||
|
+ * - udev is disabled using DM_DISABLE_UDEV environment variable
|
||||||
|
+ * See also treatment of obtain_device_list_from_udev in _init_dev_cache()
|
||||||
|
+ */
|
||||||
|
+ if (udev_is_running())
|
||||||
|
+ init_external_device_info_source(DEV_EXT_UDEV);
|
||||||
|
+ else {
|
||||||
|
+ log_notice("udev is not running. Using external_device_info_source==none");
|
||||||
|
+ init_external_device_info_source(DEV_EXT_NONE);
|
||||||
|
+ }
|
||||||
|
+ } else {
|
||||||
|
log_error("Invalid external device info source specification.");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.29.2
|
||||||
|
|
@ -1,3 +1,10 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Feb 02 03:49:00 UTC 2021 - heming.zhao@suse.com
|
||||||
|
|
||||||
|
- lvm2 should use 'external_device_info_source="udev"' by default (bsc#1179691)
|
||||||
|
- add SUSE special patch to void issues in non udev env
|
||||||
|
+ bug-1179691_config-set-external_device_info_source-none.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Dec 09 01:16:00 UTC 2020 - heming.zhao@suse.com
|
Mon Dec 09 01:16:00 UTC 2020 - heming.zhao@suse.com
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package lvm2
|
# spec file for package lvm2
|
||||||
#
|
#
|
||||||
# Copyright (c) 2020 SUSE LLC
|
# Copyright (c) 2021 SUSE LLC
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -61,7 +61,6 @@ Source1: lvm.conf
|
|||||||
Source42: ftp://sourceware.org/pub/lvm2/LVM2.%{version}.tgz.asc
|
Source42: ftp://sourceware.org/pub/lvm2/LVM2.%{version}.tgz.asc
|
||||||
Source99: baselibs.conf
|
Source99: baselibs.conf
|
||||||
# Upstream patches
|
# Upstream patches
|
||||||
# n/a
|
|
||||||
Patch0001: bug-1175565_01-tools-move-struct-element-before-variable-lenght-lis.patch
|
Patch0001: bug-1175565_01-tools-move-struct-element-before-variable-lenght-lis.patch
|
||||||
Patch0002: bug-1175565_02-gcc-change-zero-sized-array-to-fexlible-array.patch
|
Patch0002: bug-1175565_02-gcc-change-zero-sized-array-to-fexlible-array.patch
|
||||||
Patch0003: bug-1175565_03-gcc-zero-sized-array-to-fexlible-array-C99.patch
|
Patch0003: bug-1175565_03-gcc-zero-sized-array-to-fexlible-array-C99.patch
|
||||||
@ -72,6 +71,7 @@ Patch1002: fate-309425_display-dm-name-for-lv-name.patch
|
|||||||
Patch1003: fate-31841_fsadm-add-support-for-btrfs.patch
|
Patch1003: fate-31841_fsadm-add-support-for-btrfs.patch
|
||||||
Patch1004: bug-935623_dmeventd-fix-dso-name-wrong-compare.patch
|
Patch1004: bug-935623_dmeventd-fix-dso-name-wrong-compare.patch
|
||||||
Patch1005: bug-998893_make_pvscan_service_after_multipathd.patch
|
Patch1005: bug-998893_make_pvscan_service_after_multipathd.patch
|
||||||
|
Patch1006: bug-1179691_config-set-external_device_info_source-none.patch
|
||||||
# SUSE patches 2000+ for device mapper, udev rules
|
# SUSE patches 2000+ for device mapper, udev rules
|
||||||
Patch2001: bug-1012973_simplify-special-case-for-md-in-69-dm-lvm-metadata.patch
|
Patch2001: bug-1012973_simplify-special-case-for-md-in-69-dm-lvm-metadata.patch
|
||||||
# SUSE patches 3000+ for test code
|
# SUSE patches 3000+ for test code
|
||||||
@ -128,6 +128,7 @@ Volume Manager.
|
|||||||
%patch1003 -p1
|
%patch1003 -p1
|
||||||
%patch1004 -p1
|
%patch1004 -p1
|
||||||
%patch1005 -p1
|
%patch1005 -p1
|
||||||
|
%patch1006 -p1
|
||||||
%patch2001 -p1
|
%patch2001 -p1
|
||||||
|
|
||||||
%if !%{with lockd}
|
%if !%{with lockd}
|
||||||
|
Loading…
Reference in New Issue
Block a user