qemu-iotest 161 fails intermittedly due to a race condition:
qemu:block / io-qcow2-161 ERROR 2.08s exit status 1
――――――――――――――――――――――――――――――――――― ✀ ―――――――――――――――――――――――――――――――――――――
stderr:
--- tests/qemu-iotests/161.out
+++ scratch/qcow2-file-161/161.out.bad
@@ -34,6 +34,8 @@
*** Commit and then change an option on the backing file
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=1048576
+qemu-img: TEST_DIR/t.IMGFMT.base: Failed to get "write" lock
+Is another process using the image [TEST_DIR/t.IMGFMT.base]?
Formatting 'TEST_DIR/t.IMGFMT.int', fmt=IMGFMT size=1048576
backing_file=TEST_DIR/t.IMGFMT.base backing_fmt=IMGFMT
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1048576
backing_file=TEST_DIR/t.IMGFMT.int backing_fmt=IMGFMT
{ 'execute': 'qmp_capabilities' }
This test is run right after a previous test, where we've
killed qemu process which holds the test image open.
It looks like when the next test is started (with creating
the image files), old qemu is still running, so we're racing
with that qemu, and qemu-img is unable to lock the image file
properly.
We can add some `sleep $little-amount` here, but it is simpler
and more reliable to just remove the image files, so that new
ones are created.
Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/2867
Signed-off-by: Michael Tokarev <[email protected]>
diff --git a/tests/qemu-iotests/161 b/tests/qemu-iotests/161
index f25effab936..0b8ba0b19e2 100755
--- a/tests/qemu-iotests/161
+++ b/tests/qemu-iotests/161
@@ -106,6 +106,7 @@ echo
echo "*** Commit and then change an option on the backing file"
echo
# Create the images again
+rm -f -- "$TEST_IMG.base" "$TEST_IMG.int"
TEST_IMG="$TEST_IMG.base" _make_test_img $IMG_SIZE
TEST_IMG="$TEST_IMG.int" _make_test_img -b "$TEST_IMG.base" -F $IMGFMT
_make_test_img -b "$TEST_IMG.int" -F $IMGFMT