Hi everyone, The tests/acceptance/multiprocess.py:Multiprocess.test_multiprocess_x86_64 is currently failing (as of a9649a719a44894b81f38dc1c5c1888ee684acef). Unfortunately CI was unable to catch this issue earlier, because tests that require KVM are not yet running (but this should change soon). The relevant part of the test logs is:
VM launch command: './qemu-system-x86_64 -display none -vga none -chardev socket,id=mon,path=/var/tmp/avo_qemu_sock_5g22rvrp/qemu-427815-monitor.sock -mon chardev=mon,mode=control -chardev socket,id=console,path=/var/tmp/avo_qemu_sock_5g22rvrp/qemu-427815-console.sock,server=on,wait=off -serial chardev:console -machine pc -accel kvm -cpu host -object memory-backend-memfd,id=sysmem-file,size=2G --numa node,memdev=sysmem-file -m 2048 -kernel /home/cleber/avocado/data/cache/by_location/b4c64f15a75b083966d39d9246dd8db177736bb4/vmlinuz -initrd /home/cleber/avocado/data/cache/by_location/b4c64f15a75b083966d39d9246dd8db177736bb4/initrd.img -append printk.time=0 console=ttyS0 rdinit=/bin/bash -device x-pci-proxy-dev,id=lsi1,fd=16' >>> {'execute': 'qmp_capabilities'} The test remains stuck here for as long as the test is allowed to run. Because there's currently no timeout in the test, it can remain stuck forever. But, with a timeout, we end up getting: Error launching VM Command: './qemu-system-x86_64 -display none -vga none -chardev socket,id=mon,path=/var/tmp/avo_qemu_sock_5g22rvrp/qemu-427815-monitor.sock -mon chardev=mon,mode=control -chardev socket,id=console,path=/var/tmp/avo_qemu_sock_5g22rvrp/qemu-427815-console.sock,server=on,wait=off -serial chardev:console -machine pc -accel kvm -cpu host -object memory-backend-memfd,id=sysmem-file,size=2G --numa node,memdev=sysmem-file -m 2048 -kernel /home/cleber/avocado/data/cache/by_location/b4c64f15a75b083966d39d9246dd8db177736bb4/vmlinuz -initrd /home/cleber/avocado/data/cache/by_location/b4c64f15a75b083966d39d9246dd8db177736bb4/initrd.img -append printk.time=0 console=ttyS0 rdinit=/bin/bash -device x-pci-proxy-dev,id=lsi1,fd=16' Output: "qemu-system-x86_64: ../../src/qemu/softmmu/physmem.c:2055: qemu_ram_alloc_from_fd: Assertion `(ram_flags & ~(RAM_SHARED | RAM_PMEM | RAM_NORESERVE)) == 0' failed.\n" I've bisected it to: --- d5015b80134047013eeec10000df5ce2014ee114 is the first bad commit commit d5015b80134047013eeec10000df5ce2014ee114 Author: David Hildenbrand <da...@redhat.com> Date: Mon May 10 13:43:17 2021 +0200 softmmu/memory: Pass ram_flags to qemu_ram_alloc_from_fd() Let's pass in ram flags just like we do with qemu_ram_alloc_from_file(), to clean up and prepare for more flags. Simplify the documentation of passed ram flags: Looking at our documentation of RAM_SHARED and RAM_PMEM is sufficient, no need to be repetitive. Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> Reviewed-by: Peter Xu <pet...@redhat.com> Acked-by: Eduardo Habkost <ehabk...@redhat.com> for memory backend and machine core Signed-off-by: David Hildenbrand <da...@redhat.com> Message-Id: <20210510114328.21835-5-da...@redhat.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> backends/hostmem-memfd.c | 7 ++++--- hw/misc/ivshmem.c | 5 ++--- include/exec/memory.h | 9 +++------ include/exec/ram_addr.h | 6 +----- softmmu/memory.c | 7 +++---- 5 files changed, 13 insertions(+), 21 deletions(-) --- To reproduce it: 1. configure --target-list=x86_64-softmmu 2. meson compile 3. make check-venv 4. ./tests/venv/bin/avocado --show=test run --job-timeout=20s tests/acceptance/multiprocess.py:Multiprocess.test_multiprocess_x86_64 It'd be helpful to know if anyone else is experiencing the same failure. Thanks, - Cleber.