From 731fbb5d22a6f6cbf6b284d5aa8e65370a3b8045 Mon Sep 17 00:00:00 2001 From: Rich Ercolani <214141+rincebrain@users.noreply.github.com> Date: Mon, 25 Oct 2021 13:27:05 -0400 Subject: [PATCH] Workaround cloud-init hotplug issue cloud-init added a hook which triggers on every device add/rm event, which results in holding open devices for a while after they're created/destroyed. So let's shove an exclusion rule for that into the GH workflows until it gets fixed. Reviewed-by: Brian Behlendorf Reviewed-by: George Melikov Reviewed-by: John Kennedy Signed-off-by: Rich Ercolani Closes #12644 Closes #12669 --- .github/workflows/zfs-tests-functional.yml | 11 +++++++++++ .github/workflows/zfs-tests-sanity.yml | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/.github/workflows/zfs-tests-functional.yml b/.github/workflows/zfs-tests-functional.yml index eacc95ae16..aad3d552b2 100644 --- a/.github/workflows/zfs-tests-functional.yml +++ b/.github/workflows/zfs-tests-functional.yml @@ -45,6 +45,17 @@ jobs: sudo sed -i.bak 's/updates/extra updates/' /etc/depmod.d/ubuntu.conf sudo depmod sudo modprobe zfs + # Workaround for cloud-init bug + # see https://github.com/openzfs/zfs/issues/12644 + FILE=/lib/udev/rules.d/10-cloud-init-hook-hotplug.rules + if [ -r "${FILE}" ]; then + HASH=$(md5sum "${FILE}" | awk '{ print $1 }') + if [ "${HASH}" = "121ff0ef1936cd2ef65aec0458a35772" ]; then + # Just shove a zd* exclusion right above the hotplug hook... + sudo sed -i -e s/'LABEL="cloudinit_hook"'/'KERNEL=="zd*", GOTO="cloudinit_end"\n&'/ "${FILE}" + sudo udevadm control --reload-rules + fi + fi # Workaround to provide additional free space for testing. # https://github.com/actions/virtual-environments/issues/2840 sudo rm -rf /usr/share/dotnet diff --git a/.github/workflows/zfs-tests-sanity.yml b/.github/workflows/zfs-tests-sanity.yml index 40a7f8ba51..4df49461ed 100644 --- a/.github/workflows/zfs-tests-sanity.yml +++ b/.github/workflows/zfs-tests-sanity.yml @@ -41,6 +41,17 @@ jobs: sudo sed -i.bak 's/updates/extra updates/' /etc/depmod.d/ubuntu.conf sudo depmod sudo modprobe zfs + # Workaround for cloud-init bug + # see https://github.com/openzfs/zfs/issues/12644 + FILE=/lib/udev/rules.d/10-cloud-init-hook-hotplug.rules + if [ -r "${FILE}" ]; then + HASH=$(md5sum "${FILE}" | awk '{ print $1 }') + if [ "${HASH}" = "121ff0ef1936cd2ef65aec0458a35772" ]; then + # Just shove a zd* exclusion right above the hotplug hook... + sudo sed -i -e s/'LABEL="cloudinit_hook"'/'KERNEL=="zd*", GOTO="cloudinit_end"\n&'/ "${FILE}" + sudo udevadm control --reload-rules + fi + fi # Workaround to provide additional free space for testing. # https://github.com/actions/virtual-environments/issues/2840 sudo rm -rf /usr/share/dotnet