On 10/10/2019 17.24, Max Reitz wrote: > Hi, > > Perhaps the main reason we cannot run important tests such as 041 in CI > is that when they care Unix sockets in $TEST_DIR, the path may become > too long to connect to them. > > To get by this problem, this series lets the check script create a new > temporary directory (mktemp -d) and then makes the iotests use it for > all Unix sockets.
Thanks a lot for tackling this! I gave it a try, and most tests work fine now indeed when I run them in a directory with a veeeery long file name. I still get an error with 028 though: $ ./check -qcow2 028 QEMU -- "/home/thuth/tmp/qemu-with-very-long-directory-name-01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789/tests/qemu-iotests/../../x86_64-softmmu/qemu-system-x86_64" -nodefaults -display none -machine accel=qtest QEMU_IMG -- "/home/thuth/tmp/qemu-with-very-long-directory-name-01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789/tests/qemu-iotests/../../qemu-img" QEMU_IO -- "/home/thuth/tmp/qemu-with-very-long-directory-name-01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789/tests/qemu-iotests/../../qemu-io" --cache writeback -f qcow2 QEMU_NBD -- "/home/thuth/tmp/qemu-with-very-long-directory-name-01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789/tests/qemu-iotests/../../qemu-nbd" IMGFMT -- qcow2 (compat=1.1) IMGPROTO -- file PLATFORM -- Linux/x86_64 thuth 4.18.0-80.11.2.el8_0.x86_64 TEST_DIR -- /home/thuth/tmp/qemu-with-very-long-directory-name-01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789/tests/qemu-iotests/scratch SOCK_DIR -- /tmp/tmp.YEmubpCxRH SOCKET_SCM_HELPER -- /home/thuth/tmp/qemu-with-very-long-directory-name-01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789/tests/qemu-iotests/socket_scm_helper 028 fail [09:11:52] [09:11:53] output mismatch (see 028.out.bad) --- /home/thuth/devel/qemu/tests/qemu-iotests/028.out 2019-08-16 18:00:39.258741027 +0200 +++ /home/thuth/tmp/qemu-with-very-long-directory-name-01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789/tests/qemu-iotests/028.out.bad 2019-10-11 09:11:53.822111901 +0200 @@ -468,7 +468,8 @@ block-backup -Formatting 'TEST_DIR/t.IMGFMT.copy', fmt=IMGFMT size=4294968832 backing_file=TEST_DIR/t.IMGFMT.base backing_fmt=IMGFMT +(qemu) +Timeout waiting for Formatting on handle 0 (qemu) info block-jobs No active jobs === IO: pattern 195 Failures: 028 Failed 1 of 1 iotests 028 works fine if I start it from a directory with a short filename. I also saw an error with "./check -raw 055" once, but it does not seem to be reproducible: 055 fail [09:08:28] [09:10:57] output mismatch (see 055.out.bad) --- /home/thuth/devel/qemu/tests/qemu-iotests/055.out 2019-08-16 18:00:39.262741079 +0200 +++ /home/thuth/tmp/qemu-with-very-long-directory-name-01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789/tests/qemu-iotests/055.out.bad 2019-10-11 09:10:57.059254617 +0200 @@ -1,5 +1,35 @@ -.............................. +WARNING:qemu.machine:qemu received signal 9: /home/thuth/tmp/qemu-with-very-long-directory-name-01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789/tests/qemu-iotests/../../x86_64-softmmu/qemu-system-x86_64 -chardev socket,id=mon,path=/tmp/tmp.3mKmQDU7Ft/qemu-24878-monitor.sock -mon chardev=mon,mode=control -display none -vga none -qtest unix:path=/tmp/tmp.3mKmQDU7Ft/qemu-24878-qtest.sock -accel qtest -nodefaults -display none -machine accel=qtest -drive if=virtio,id=drive0,file=blkdebug::/home/thuth/tmp/qemu-with-very-long-directory-name-01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789/tests/qemu-iotests/scratch/test.img,format=raw,cache=writeback -drive if=none,id=drive1,file=/home/thuth/tmp/qemu-with-very-long-directory-name-01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789/tests/qemu-iotests/scratch/blockdev-target.img,format=vmdk,cache=writeback +E............................. +====================================================================== +ERROR: test_complete_compress_blockdev_backup (__main__.TestDriveCompression) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/thuth/devel/qemu/tests/qemu-iotests/../../python/qemu/qmp.py", line 122, in __get_events + ret = self.__json_read(only_event=True) + File "/home/thuth/devel/qemu/tests/qemu-iotests/../../python/qemu/qmp.py", line 82, in __json_read + data = self.__sockfile.readline() + File "/usr/lib64/python3.6/socket.py", line 586, in readinto + return self._sock.recv_into(b) +socket.timeout: timed out + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "055", line 499, in test_complete_compress_blockdev_backup + target='drive1') + File "055", line 484, in do_test_compress_complete + self.wait_until_completed() + File "/home/thuth/devel/qemu/tests/qemu-iotests/iotests.py", line 751, in wait_until_completed + for event in self.vm.get_qmp_events(wait=wait): + File "/home/thuth/devel/qemu/tests/qemu-iotests/../../python/qemu/machine.py", line 406, in get_qmp_events + events = self._qmp.get_events(wait=wait) + File "/home/thuth/devel/qemu/tests/qemu-iotests/../../python/qemu/qmp.py", line 236, in get_events + self.__get_events(wait) + File "/home/thuth/devel/qemu/tests/qemu-iotests/../../python/qemu/qmp.py", line 124, in __get_events + raise QMPTimeoutError("Timeout waiting for event") +qemu.qmp.QMPTimeoutError: Timeout waiting for event + ---------------------------------------------------------------------- Ran 30 tests -OK +FAILED (errors=1) Thomas