From cc75e1f7c9bd47104300bbfcbd57f1269f987b84 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Sun, 13 Mar 2022 21:38:10 +0900 Subject: [PATCH 1/3] test: use /var/tmp for storing disk images The Ubuntu CI on ppc64el seems to have a issue on tmpfs, and files may not be fsynced. See c10caebb98803b812ebc4dd6cdeaab2ca17826d7. For safety, let's use /var/tmp to store disk images. --- test/units/testsuite-58.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/units/testsuite-58.sh b/test/units/testsuite-58.sh index f1b690a71f..1ebc699a1b 100755 --- a/test/units/testsuite-58.sh +++ b/test/units/testsuite-58.sh @@ -172,9 +172,9 @@ rm -r /tmp/testsuite-58.3-defs/ # testcase for #21817 mkdir -p /tmp/testsuite-58-issue-21817-defs/ -truncate -s 100m /tmp/testsuite-58-issue-21817.img -LOOP=$(losetup -P --show -f /tmp/testsuite-58-issue-21817.img) -printf 'size=50M,type=%s\n,\n' "${root_guid}" | sfdisk -X gpt /tmp/testsuite-58-issue-21817.img +truncate -s 100m /var/tmp/testsuite-58-issue-21817.img +LOOP=$(losetup -P --show -f /var/tmp/testsuite-58-issue-21817.img) +printf 'size=50M,type=%s\n,\n' "${root_guid}" | sfdisk -X gpt /var/tmp/testsuite-58-issue-21817.img cat >/tmp/testsuite-58-issue-21817-defs/test.conf < Date: Mon, 14 Mar 2022 02:26:25 +0900 Subject: [PATCH 2/3] test: format disk image through loopback device It seems that the change on the image file sometimes not propagated on the loopback device immediately. --- test/units/testsuite-58.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/units/testsuite-58.sh b/test/units/testsuite-58.sh index 1ebc699a1b..cc755a4f86 100755 --- a/test/units/testsuite-58.sh +++ b/test/units/testsuite-58.sh @@ -174,7 +174,7 @@ rm -r /tmp/testsuite-58.3-defs/ mkdir -p /tmp/testsuite-58-issue-21817-defs/ truncate -s 100m /var/tmp/testsuite-58-issue-21817.img LOOP=$(losetup -P --show -f /var/tmp/testsuite-58-issue-21817.img) -printf 'size=50M,type=%s\n,\n' "${root_guid}" | sfdisk -X gpt /var/tmp/testsuite-58-issue-21817.img +printf 'size=50M,type=%s\n,\n' "${root_guid}" | sfdisk -X gpt "$LOOP" cat >/tmp/testsuite-58-issue-21817-defs/test.conf < Date: Mon, 14 Mar 2022 22:02:37 +0900 Subject: [PATCH 3/3] test: wait for loopback device being actually created It seems there exists a short time period that we cannot see the loopback device after `losetup` is finished: ``` testsuite-58.sh[367]: ++ losetup -b 1024 -P --show -f /tmp/testsuite-58-sector-1024.img kernel: loop1: detected capacity change from 0 to 204800 testsuite-58.sh[285]: + LOOP=/dev/loop1 testsuite-58.sh[285]: + systemd-repart --pretty=yes --definitions=/tmp/testsuite-58-sector/ --seed=750b6cd5c4ae4012a15e7be3c29e6a47 --empty=require --dry-run=no /dev/loop1 testsuite-58.sh[368]: Device '/dev/loop1' has no dm-crypt/dm-verity device, no need to look for underlying block device. testsuite-58.sh[368]: Failed to determine canonical path for '/dev/loop1': No such file or directory testsuite-58.sh[368]: Failed to open file or determine backing device of /dev/loop1: No such file or directory ``` --- test/units/testsuite-58.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/test/units/testsuite-58.sh b/test/units/testsuite-58.sh index cc755a4f86..cef7d094fd 100755 --- a/test/units/testsuite-58.sh +++ b/test/units/testsuite-58.sh @@ -174,6 +174,10 @@ rm -r /tmp/testsuite-58.3-defs/ mkdir -p /tmp/testsuite-58-issue-21817-defs/ truncate -s 100m /var/tmp/testsuite-58-issue-21817.img LOOP=$(losetup -P --show -f /var/tmp/testsuite-58-issue-21817.img) +while : ; do + test -e "$LOOP" && break + sleep .2 +done printf 'size=50M,type=%s\n,\n' "${root_guid}" | sfdisk -X gpt "$LOOP" cat >/tmp/testsuite-58-issue-21817-defs/test.conf <