From 52537418e65bf68e0dcd86be8dd323f604df0f54 Mon Sep 17 00:00:00 2001 From: Robert Church Date: Fri, 17 Jun 2022 21:59:33 -0400 Subject: [PATCH] Debian: Add lvm2 upstream fix for event_activation Historically, with CentOS, we had issues related to LV activation occurring in a non-deterministic way and causing an assortment of provisioning issues. More deterministic LV activation was achieved by setting use_lvmetad = 0 in /etc/lvm/lvm.conf In the migration to Debian, a much more recent version of the lvm2 package is in use. In the intervening versions of lvm2, lvmetad was removed making use_lvmetad and the associated behavior now obsolete. In some current random testing scenarios, emergency mode is seen when booting the Debian ISO. Reviewing the systemd dump of services initiating when emergency mode occurs, it is observed that LV activation is occurring at a different time and order vs. a successful boot. The Debian lvm2 version provides configuration parameter global/event_activation which when set to 0 will change LV activation behavior when a PV appears. No noticable change was observed when this variable is set. The current upstream version from Debian Bullseye is missing an lvm2 upstream patch the should address this issue. Patch the Debian lvm2 version with this upstream patch to enable testing with this enabled. Test Plan: PASS - Build ISO, install/provision in AIO-SX virtual/hardware labs PASS - Perform numerous reboot cycles an observe no issues PASS - Test on H/W setup that has shown energency mode behavior to confirm that this version and associated config file change resolved emergency mode PV/LV activation issues Change-Id: If22e446126f33c2155bd70988ed9b0444d230730 Partial-Bug: #1979105 Signed-off-by: Robert Church --- ...supported-gitarchive-format-to-quilt.patch | 23 ++++++++++++ base/lvm2/debian/deb_patches/series | 1 + base/lvm2/debian/meta_data.yaml | 11 ++++++ ...an-support-disabled-event_activation.patch | 37 +++++++++++++++++++ base/lvm2/debian/patches/series | 1 + debian_iso_image.inc | 1 + debian_pkg_dirs | 1 + 7 files changed, 75 insertions(+) create mode 100644 base/lvm2/debian/deb_patches/0001-Change-from-unsupported-gitarchive-format-to-quilt.patch create mode 100644 base/lvm2/debian/deb_patches/series create mode 100644 base/lvm2/debian/meta_data.yaml create mode 100644 base/lvm2/debian/patches/0001-pvscan-support-disabled-event_activation.patch create mode 100644 base/lvm2/debian/patches/series diff --git a/base/lvm2/debian/deb_patches/0001-Change-from-unsupported-gitarchive-format-to-quilt.patch b/base/lvm2/debian/deb_patches/0001-Change-from-unsupported-gitarchive-format-to-quilt.patch new file mode 100644 index 000000000..f2ce317d7 --- /dev/null +++ b/base/lvm2/debian/deb_patches/0001-Change-from-unsupported-gitarchive-format-to-quilt.patch @@ -0,0 +1,23 @@ +From bb0ec0c9e8996801d5925831d9b2001d76c1cff2 Mon Sep 17 00:00:00 2001 +From: Robert Church +Date: Mon, 6 Jun 2022 01:06:15 -0400 +Subject: [PATCH] Change from unsupported gitarchive format to quilt + +The current build infrastructure doesn't support source patching of +archives that have the gitarchive source format. + +Signed-off-by: Robert Church +--- + debian/source/format | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/debian/source/format b/debian/source/format +index 7cb8623..163aaf8 100644 +--- a/debian/source/format ++++ b/debian/source/format +@@ -1 +1 @@ +-3.0 (gitarchive) ++3.0 (quilt) +-- +2.16.6 + diff --git a/base/lvm2/debian/deb_patches/series b/base/lvm2/debian/deb_patches/series new file mode 100644 index 000000000..573b731f9 --- /dev/null +++ b/base/lvm2/debian/deb_patches/series @@ -0,0 +1 @@ +0001-Change-from-unsupported-gitarchive-format-to-quilt.patch diff --git a/base/lvm2/debian/meta_data.yaml b/base/lvm2/debian/meta_data.yaml new file mode 100644 index 000000000..74562f4fe --- /dev/null +++ b/base/lvm2/debian/meta_data.yaml @@ -0,0 +1,11 @@ +--- +debname: lvm2 +debver: 2.03.11-2 +dl_path: + name: lvm2-2.03.11-2.tar.gz + url: https://salsa.debian.org/lvm-team/lvm2/-/archive/debian/2.03.11-2/lvm2-debian-2.03.11-2.tar.gz + md5sum: 07f9094c926a96977edc43ea0d665e2a + sha256sum: 6bd5c31725f30e573bdf583204833ca36ac0f5e9a05f043ee8ebfe41142af59a +revision: + dist: $STX_DIST + PKG_GITREVCOUNT: true diff --git a/base/lvm2/debian/patches/0001-pvscan-support-disabled-event_activation.patch b/base/lvm2/debian/patches/0001-pvscan-support-disabled-event_activation.patch new file mode 100644 index 000000000..31dcf7525 --- /dev/null +++ b/base/lvm2/debian/patches/0001-pvscan-support-disabled-event_activation.patch @@ -0,0 +1,37 @@ +From da88d405f414c864857fd63aeddf4e3125bd166f Mon Sep 17 00:00:00 2001 +From: Zdenek Kabelac +Date: Mon, 8 Feb 2021 16:28:18 +0100 +Subject: [PATCH] pvscan: support disabled event_activation + +In past we had this control with use_lvmetad check for +pvscan --cache -aay + +Howerer this got lost with lvmetad removal commit: +117160b27e510dceb1ed6acf995115c040acd88d + +When user sets lvm.conf global/event_activation=0 +pvscan service will no longer auto activate any LVs on appeared PVs. +--- + tools/pvscan.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/tools/pvscan.c b/tools/pvscan.c +index 55c708682..7493c402b 100644 +--- a/tools/pvscan.c ++++ b/tools/pvscan.c +@@ -1575,6 +1575,12 @@ int pvscan_cache_cmd(struct cmd_context *cmd, int argc, char **argv) + + dm_list_init(&complete_vgnames); + ++ if (do_activate && ++ !find_config_tree_bool(cmd, global_event_activation_CFG, NULL)) { ++ log_verbose("Ignoring pvscan --cache -aay because event_activation is disabled."); ++ return ECMD_PROCESSED; ++ } ++ + if (arg_is_set(cmd, major_ARG) + arg_is_set(cmd, minor_ARG)) + devno_args = 1; + +-- +2.16.6 + diff --git a/base/lvm2/debian/patches/series b/base/lvm2/debian/patches/series new file mode 100644 index 000000000..533dd5017 --- /dev/null +++ b/base/lvm2/debian/patches/series @@ -0,0 +1 @@ +0001-pvscan-support-disabled-event_activation.patch diff --git a/debian_iso_image.inc b/debian_iso_image.inc index 88d73928d..1044667be 100644 --- a/debian_iso_image.inc +++ b/debian_iso_image.inc @@ -4,6 +4,7 @@ facter puppet drbd-tools parted +lvm2 trident-installer iputils-arping iputils-ping diff --git a/debian_pkg_dirs b/debian_pkg_dirs index c6eee4587..08a9e62a8 100644 --- a/debian_pkg_dirs +++ b/debian_pkg_dirs @@ -6,6 +6,7 @@ base/haproxy base/libfdt base/lighttpd base/linuxptp +base/lvm2 base/lsb base/pf-bb-config base/systemd