]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: skip TEST-84-STORAGETM if running with bugged libnvme
authorLuca Boccassi <luca.boccassi@gmail.com>
Thu, 14 Nov 2024 16:19:25 +0000 (16:19 +0000)
committerLuca Boccassi <luca.boccassi@gmail.com>
Thu, 14 Nov 2024 18:10:26 +0000 (18:10 +0000)
libnvme 1.11 appears to require a kernel built with NVME TLS
kconfigs, and fails hard if it is not, as the expected
privileged keyring '.nvme' is not present. We cannot just
create it from userspace, as privileged keyrings can only
be created by the kernel itself (those starting with '.').

Skip the test if the library exactly matches this version.

https://github.com/linux-nvme/nvme-cli/issues/2573

Fixes https://github.com/systemd/systemd/issues/35130

(cherry picked from commit 893aa45886ef84b1827445dc438e410ad89fbbbf)

test/units/TEST-84-STORAGETM.sh

index eae87d52341f1b095a3ee58c960b2b59cbfae5ad..c5cb8989020f1983e464576c5ad0607c9a8d1d58 100755 (executable)
@@ -3,6 +3,14 @@
 set -eux
 set -o pipefail
 
+if systemd-analyze compare-versions "$(nvme --version | grep libnvme | awk '{print $3}')" eq 1.11; then
+    if grep -q "CONFIG_NVME_TCP_TLS is not set" "/boot/config-$(uname -r)" 2>/dev/null || grep -q "CONFIG_NVME_TCP_TLS is not set" "/usr/lib/modules/$(uname -r)/config" 2>/dev/null; then
+        # See: https://github.com/linux-nvme/nvme-cli/issues/2573
+        echo "nvme-cli is broken and requires TLS support in the kernel" >/skipped
+        exit 77
+    fi
+fi
+
 modprobe -v nvmet-tcp
 modprobe -v nvme-tcp