qemu/tests
Daniel P. Berrangé 6cbde91a27 tests/qtest: use prctl(PR_SET_PDEATHSIG) as fallback to kill QEMU
Although we register a ABRT handler to kill off QEMU when g_assert()
triggers, we want an extra safety net. The QEMU process might be
non-functional and thus not have responded to SIGTERM. The test script
might also have crashed with SEGV, in which case the cleanup handlers
won't ever run.

Using the Linux specific prctl(PR_SET_PDEATHSIG) syscall, we
can ensure that QEMU gets sent SIGKILL as soon as the controlling
qtest exits, if nothing else has correctly told it to quit.

Note, technically the death signal is sent when the *thread* that
called fork() exits. IOW, if you are calling qtest_init() in one
thread, letting that thread exit, and then expecting to run
qtest_quit() in a different thread, things are not going to work
out. Fortunately that is not a scenario that exists in qtests,
as pairs of qtest_init and qtest_quit are always called from the
same thread.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20220513154906.206715-3-berrange@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
2022-05-18 08:54:22 +02:00
..
avocado test/avocado/machine_aspeed.py: Add ast1030 test case 2022-05-02 17:03:04 +02:00
bench osdep: Move memalign-related functions to their own header 2022-03-07 13:16:49 +00:00
data tests/acpi: Add tables for CXL emulation. 2022-05-13 07:57:26 -04:00
decode decodetree: Extend argument set syntax to allow types 2021-05-01 11:45:35 -07:00
docker Remove Ubuntu 18.04 container support from the repository 2022-05-18 08:54:22 +02:00
fp compiler.h: replace QEMU_NORETURN with G_NORETURN 2022-04-21 17:03:51 +04:00
guest-debug tests/guest-debug: better handle gdb crashes 2022-04-20 16:04:20 +01:00
image-fuzzer
include tests: add missing generated sources to testqapi 2020-10-17 10:45:50 -04:00
keys tests/vm: Add Haiku test based on their vagrant images 2020-11-17 09:45:24 +01:00
lcitool Remove Ubuntu 18.04 container support from the repository 2022-05-18 08:54:22 +02:00
migration tests/migration: fix unix socket migration 2021-07-14 14:15:52 +01:00
multiboot Remove superfluous .gitignore files 2020-10-13 12:48:17 +02:00
perf/block/qcow2
plugin tests/plugins: add instruction matching to libinsn.so 2022-02-09 12:08:42 +00:00
qapi-schema qapi-schema: test: add a unit test for parsing array alternates 2022-04-21 10:11:25 +02:00
qemu-iotests qemu-iotests: inline common.config into common.rc 2022-05-12 15:42:49 +02:00
qtest tests/qtest: use prctl(PR_SET_PDEATHSIG) as fallback to kill QEMU 2022-05-18 08:54:22 +02:00
rocker
tcg tests/tcg/xtensa: fix vectors and checks in timer test 2022-05-06 15:27:40 -07:00
tsan tests/docker: Added docker build support for TSan. 2020-06-16 14:49:05 +01:00
uefi-test-tools Remove superfluous .gitignore files 2020-10-13 12:48:17 +02:00
unit QIOChannel: Add flags on io_writev and introduce io_flush callback 2022-05-16 13:56:24 +01:00
vm tests/vm: update openbsd to release 7.1 2022-05-09 08:21:14 +02:00
vmstate-static-checker-data hw: Replace anti-social QOM type names 2021-03-19 15:18:43 +01:00
check-block.sh tests/qemu-iotests: Move the bash and sanitizer checks to meson.build 2022-04-20 09:46:54 +02:00
dbus-vmstate-daemon.sh
Makefile.include tests/tcg: invoke Makefile.target directly from QEMU's makefile 2022-04-20 16:04:20 +01:00
meson.build meson: create have_vhost_* variables 2022-05-07 07:46:58 +02:00
requirements.txt acceptance tests: bump Avocado version to 88.1 2021-06-01 16:21:21 -04:00
test-qht-par.c
vhost-user-bridge.c Replace qemu_real_host_page variables with inlined functions 2022-04-06 10:50:38 +02:00