Details
-
Bug
-
Resolution: Unresolved
-
P3: Somewhat important
-
None
-
6.7
-
None
Description
When QTest::qExec is called more than once in series in an application and the application receives a signal (outside of the QTest::qExec call), the QTest signal handler will be called in an infinite loop.
Example Code:
// testcase.h #pragma once #include <QObject> #include <QtTest> class TestA : public QObject { Q_OBJECT private Q_SLOTS: void testPass() {} }; class TestB : public QObject { Q_OBJECT private Q_SLOTS: void testFail() { QFAIL("crash now"); } };
// main.cpp #include "testcase.h" #include <QCoreApplication> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); std::vector<QObject *> testcases{new TestA, new TestB}; QStringList args{}; for (auto *testcase : testcases) { if (QTest::qExec(testcase, args) != 0) { qFatal("Test failed"); // causes SIGABRT to be sent } } return 0; }
Output:
********* Start testing of TestA ********* Config: Using QtTest library 6.7.0, Qt 6.7.0 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 10.3.1 20210422 (Red Hat 10.3.1-1)), ubuntu 22.04 PASS : TestA::initTestCase() PASS : TestA::testPass() PASS : TestA::cleanupTestCase() Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 1ms ********* Finished testing of TestA ********* ********* Start testing of TestB ********* Config: Using QtTest library 6.7.0, Qt 6.7.0 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 10.3.1 20210422 (Red Hat 10.3.1-1)), ubuntu 22.04 PASS : TestB::initTestCase() FAIL! : TestB::testFail() crash now Loc: [xxx/qt_test_autogen/EWIEGA46WW/../../../../testcase.h(18)] PASS : TestB::cleanupTestCase() Totals: 2 passed, 1 failed, 0 skipped, 0 blacklisted, 1ms ********* Finished testing of TestB ********* Test failed Received signal 6 (SIGABRT) [Non-test] function time: 0ms, total time: 1ms=== Stack trace === Could not attach to process. If your uid matches the uid of the target process, check the setting of /proc/sys/kernel/yama/ptrace_scope, or try again as the root user. For more details, see /etc/sysctl.d/10-ptrace.conf ptrace: Inappropriate ioctl for device. === End of stack trace === Received signal 6 (SIGABRT) [Non-test] function time: 72ms, total time: 72ms=== Stack trace === Could not attach to process. If your uid matches the uid of the target process, check the setting of /proc/sys/kernel/yama/ptrace_scope, or try again as the root user. For more details, see /etc/sysctl.d/10-ptrace.conf ptrace: Inappropriate ioctl for device. === End of stack trace === Received signal 6 (SIGABRT) [Non-test] function time: 121ms, total time: 121ms=== Stack trace === Could not attach to process. If your uid matches the uid of the target process, check the setting of /proc/sys/kernel/yama/ptrace_scope, or try again as the root user. For more details, see /etc/sysctl.d/10-ptrace.conf ptrace: Inappropriate ioctl for device. === End of stack trace === Received signal 6 (SIGABRT) [Non-test] function time: 168ms, total time: 169ms ...
The source of that problem seems to be the signal handler removal logic in ~FatalSignalHandler() in qtestcase.cpp for 6.7 (or qtestcrashhandler.cpp for dev). During the first qExec it hits the first if and skips the removal. At the end of the second qExec it does uninstall the handler, but the previous handler stored in oldActions() will also be the FatalSignalHandler's handler function:
for (size_t i = 0; i < fatalSignals.size(); ++i) { struct sigaction &act = oldActions()[i]; if (act.sa_flags == 0 && act.sa_handler == SIG_DFL) continue; // Already the default if (sigaction(fatalSignals[i], nullptr, &action)) continue; // Failed to query present handler if (isOurs(action)) sigaction(fatalSignals[i], &act, nullptr); }
Output of strace -e trace=signal ./qt_test:
sigaltstack({ss_sp=0x76fc14bf8000, ss_flags=0, ss_size=32768}, NULL) = 0 rt_sigaction(SIGHUP, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGINT, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGQUIT, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGABRT, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGILL, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGBUS, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGFPE, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGSEGV, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGPIPE, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGTERM, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 sigaltstack({ss_sp=NULL, ss_flags=SS_DISABLE, ss_size=0}, NULL) = 0 sigaltstack({ss_sp=0x76fc14bf8000, ss_flags=0, ss_size=32768}, NULL) = 0 rt_sigaction(SIGHUP, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO, sa_restorer=0x76fc14442520}, 8) = 0 rt_sigaction(SIGINT, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO, sa_restorer=0x76fc14442520}, 8) = 0 rt_sigaction(SIGQUIT, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO, sa_restorer=0x76fc14442520}, 8) = 0 rt_sigaction(SIGABRT, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO, sa_restorer=0x76fc14442520}, 8) = 0 rt_sigaction(SIGILL, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO, sa_restorer=0x76fc14442520}, 8) = 0 rt_sigaction(SIGBUS, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO, sa_restorer=0x76fc14442520}, 8) = 0 rt_sigaction(SIGFPE, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO, sa_restorer=0x76fc14442520}, 8) = 0 rt_sigaction(SIGSEGV, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO, sa_restorer=0x76fc14442520}, 8) = 0 rt_sigaction(SIGPIPE, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO, sa_restorer=0x76fc14442520}, 8) = 0 rt_sigaction(SIGTERM, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO, sa_restorer=0x76fc14442520}, 8) = 0 rt_sigaction(SIGHUP, NULL, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO, sa_restorer=0x76fc14442520}, 8) = 0 rt_sigaction(SIGHUP, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, NULL, 8) = 0 rt_sigaction(SIGINT, NULL, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO, sa_restorer=0x76fc14442520}, 8) = 0 rt_sigaction(SIGINT, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, NULL, 8) = 0 rt_sigaction(SIGQUIT, NULL, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO, sa_restorer=0x76fc14442520}, 8) = 0 rt_sigaction(SIGQUIT, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, NULL, 8) = 0 rt_sigaction(SIGABRT, NULL, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO, sa_restorer=0x76fc14442520}, 8) = 0 rt_sigaction(SIGABRT, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, NULL, 8) = 0 rt_sigaction(SIGILL, NULL, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO, sa_restorer=0x76fc14442520}, 8) = 0 rt_sigaction(SIGILL, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, NULL, 8) = 0 rt_sigaction(SIGBUS, NULL, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO, sa_restorer=0x76fc14442520}, 8) = 0 rt_sigaction(SIGBUS, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, NULL, 8) = 0 rt_sigaction(SIGFPE, NULL, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO, sa_restorer=0x76fc14442520}, 8) = 0 rt_sigaction(SIGFPE, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, NULL, 8) = 0 rt_sigaction(SIGSEGV, NULL, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO, sa_restorer=0x76fc14442520}, 8) = 0 rt_sigaction(SIGSEGV, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, NULL, 8) = 0 rt_sigaction(SIGPIPE, NULL, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO, sa_restorer=0x76fc14442520}, 8) = 0 rt_sigaction(SIGPIPE, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, NULL, 8) = 0 rt_sigaction(SIGTERM, NULL, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO, sa_restorer=0x76fc14442520}, 8) = 0 rt_sigaction(SIGTERM, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, NULL, 8) = 0 sigaltstack({ss_sp=NULL, ss_flags=SS_DISABLE, ss_size=0}, NULL) = 0 Test failed rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0 tgkill(43224, 43224, SIGABRT) = 0 --- SIGABRT {si_signo=SIGABRT, si_code=SI_TKILL, si_pid=43224, si_uid=1000} --- Received signal 6 (SIGABRT) [Non-test] function time: 1ms, total time: 2ms rt_sigaction(SIGABRT, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, NULL, 8) = 0 tgkill(43224, 43224, SIGABRT) = 0 rt_sigreturn({mask=[]}) = 0 --- SIGABRT {si_signo=SIGABRT, si_code=SI_TKILL, si_pid=43224, si_uid=1000} --- Received signal 6 (SIGABRT) [Non-test] function time: 1ms, total time: 2ms rt_sigaction(SIGABRT, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, NULL, 8) = 0 tgkill(43224, 43224, SIGABRT) = 0 rt_sigreturn({mask=[]}) = 0 --- SIGABRT {si_signo=SIGABRT, si_code=SI_TKILL, si_pid=43224, si_uid=1000} --- Received signal 6 (SIGABRT) [Non-test] function time: 2ms, total time: 3ms rt_sigaction(SIGABRT, {sa_handler=0x76fc152fa960, sa_mask=[HUP INT QUIT ILL ABRT BUS FPE SEGV PIPE TERM], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESETHAND|SA_SIGINFO|0xffffffff00000000, sa_restorer=0x76fc14442520}, NULL, 8) = 0 tgkill(43224, 43224, SIGABRT) = 0 rt_sigreturn({mask=[]}) = 0 --- SIGABRT {si_signo=SIGABRT, si_code=SI_TKILL, si_pid=43224, si_uid=1000} --- ...
This is probably also the underlying reason for QTBUG-124467