|
From: | Coiby Xu |
Subject: | Re: [PATCH] fuzz: avoid building twice, when running on gitlab |
Date: | Wed, 11 Aug 2021 08:11:06 +0800 |
On Tue, Aug 10, 2021 at 07:01:45AM +0200, Philippe Mathieu-Daudé wrote:
+Coiby Xu & qemu-block@
Thanks for adding me to the Cc list.
On 8/9/21 9:36 PM, Peter Maydell wrote:On Mon, 9 Aug 2021 at 20:30, Alexander Bulekov <alxndr@bu.edu> wrote:On 210809 1506, Alexander Bulekov wrote:On 210809 1925, Peter Maydell wrote:On Mon, 9 Aug 2021 at 12:18, Alexander Bulekov <alxndr@bu.edu> wrote:On oss-fuzz, we build twice, to put together a build that is portable to the runner containers. On gitlab ci, this is wasteful and contributes to timeouts on the build-oss-fuzz job. Avoid building twice on gitlab, at the remote cost of potentially missing some cases that break oss-fuzz builds. Signed-off-by: Alexander Bulekov <alxndr@bu.edu> --- From a couple test runs it looks like this can shave off 15-20 minutes. scripts/oss-fuzz/build.sh | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-)I tried a test run with this, but it still hit the 1 hour timeout: https://gitlab.com/qemu-project/qemu/-/pipelines/350387482It also timed out for me with a 120 minute timeout: https://gitlab.com/a1xndr/qemu/-/jobs/1488160601 The log has almost exactly the same number of lines as yours, so I'm guessing one of the qtests is timing out with --enable-sanitizers .Building locally: $ CC=clang-11 CXX=clang++-11 ../configure --enable-fuzzing \ --enable-debug --enable-sanitizers $ make check-qtest-i386 check-unit Same as on gitlab, this times out shortly after outputting "sh: 1: exec: ./storage-daemon/qemu-storage-daemon: not found" Manually running qos-test, the same way check-qtest-i386 invokes it: $ QTEST_QEMU_BINARY=./qemu-system-i386 QTEST_QEMU_STORAGE_DAEMON_BINARY=./storage-daemon/qemu-storage-daemon tests/qtest/qos-test --tap -k -m quick < /dev/null # starting vhost-user backend: exec ./storage-daemon/qemu-storage-daemon --blockdev driver=file,node-name=disk0,filename=qtest.XRAzzu --export type=vhost-user-blk,id=disk0,addr.type=unix,addr.path=/tmp/qtest-94561-sock.NdKWpt,node-name=disk0,writable=on,num-queues=1 sh: 1: exec: ./storage-daemon/qemu-storage-daemon: not found
The error is different from the previous issue of intermittent hang. This time the hang is caused by missing qemu-storage-daemon and Iguess the hang could happen reliably each time. The reason of missing qemu-storage-daemon is the test doesn't add qemu-storage-daemon as dependency. If we run `make`, qemu-storage-daemon would be built. But if `make check-qtest-i386` is run directly, qemu-storage-daemon wouldn't be built. I'll send a patch to make vhost-user-blk test depends on emu-storage-daemon.
# starting QEMU: exec ./qemu-system-i386 -qtest unix:/tmp/qtest-94561.sock -qtest-log /dev/null -chardev socket,path=/tmp/qtest-94561.qmp,id=char0 -mon chardev=char0,mode=control -display none -M pc -device vhost-user-blk-pci,id=drv0,chardev=char1,addr=4.0 -object memory-backend-memfd,id=mem,size=256M,share=on -M memory-backend=mem -m 256M -chardev socket id=char1,path=/tmp/qtest-94561-sock.NdKWpt -accel qtest *timeout*vhost-user timing out in realize I suspect. I see that as an intermittent hang in non-sanitizer configs. vhost-user folk: Can we either look at fixing this or else disable the test ? (Stack backtraces available in the other email thread.) thanks -- PMM
-- Best regards, Coiby
[Prev in Thread] | Current Thread | [Next in Thread] |