Details
-
Bug
-
Resolution: Won't Do
-
P2: Important
-
None
-
6.1.0, 6.2
-
None
Description
I see some data races from the place that shouldn't have them. This specific issue seems to cause test failures e.g. in QEMU that runs in the CI.
Running tst_qurl locally (specifically, tst_qurl::testThreading()) gives the following:
================== WARNING: ThreadSanitizer: data race (pid=6647) Write of size 8 at 0x7b5000020c90 by thread T3: #0 memset <null> (libtsan.so.0+0x368af) #1 g_slice_alloc0 <null> (libglib-2.0.so.0+0x69f4d) #2 QEventDispatcherGlib::QEventDispatcherGlib(QObject*) /home/ag/work/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:364 (libQt6Core.so.6+0x6e1b2a) #3 QThreadPrivate::createEventDispatcher(QThreadData*) /home/ag/work/qt5/qtbase/src/corelib/thread/qthread_unix.cpp:258 (libQt6Core.so.6+0x54a820) #4 QThreadData::createEventDispatcher() /home/ag/work/qt5/qtbase/src/corelib/thread/qthread.cpp:126 (libQt6Core.so.6+0x4300f8) #5 QThreadData::ensureEventDispatcher() /home/ag/work/qt5/qtbase/src/corelib/thread/qthread_p.h:254 (libQt6Core.so.6+0x228a74) #6 QThreadPrivate::start(void*) /home/ag/work/qt5/qtbase/src/corelib/thread/qthread_unix.cpp:310 (libQt6Core.so.6+0x54aa79) #7 <null> <null> (libtsan.so.0+0x2c34f) Previous write of size 8 at 0x7b5000020c90 by thread T2: #0 posix_memalign <null> (libtsan.so.0+0x2f579) #1 <null> <null> (libglib-2.0.so.0+0x69206) #2 QEventDispatcherGlib::QEventDispatcherGlib(QObject*) /home/ag/work/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:364 (libQt6Core.so.6+0x6e1b2a) #3 QThreadPrivate::createEventDispatcher(QThreadData*) /home/ag/work/qt5/qtbase/src/corelib/thread/qthread_unix.cpp:258 (libQt6Core.so.6+0x54a820) #4 QThreadData::createEventDispatcher() /home/ag/work/qt5/qtbase/src/corelib/thread/qthread.cpp:126 (libQt6Core.so.6+0x4300f8) #5 QThreadData::ensureEventDispatcher() /home/ag/work/qt5/qtbase/src/corelib/thread/qthread_p.h:254 (libQt6Core.so.6+0x228a74) #6 QThreadPrivate::start(void*) /home/ag/work/qt5/qtbase/src/corelib/thread/qthread_unix.cpp:310 (libQt6Core.so.6+0x54aa79) #7 <null> <null> (libtsan.so.0+0x2c34f) Location is heap block of size 496 at 0x7b5000020c00 allocated by thread T2: #0 posix_memalign <null> (libtsan.so.0+0x2f579) #1 <null> <null> (libglib-2.0.so.0+0x69206) #2 QEventDispatcherGlib::QEventDispatcherGlib(QObject*) /home/ag/work/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:364 (libQt6Core.so.6+0x6e1b2a) #3 QThreadPrivate::createEventDispatcher(QThreadData*) /home/ag/work/qt5/qtbase/src/corelib/thread/qthread_unix.cpp:258 (libQt6Core.so.6+0x54a820) #4 QThreadData::createEventDispatcher() /home/ag/work/qt5/qtbase/src/corelib/thread/qthread.cpp:126 (libQt6Core.so.6+0x4300f8) #5 QThreadData::ensureEventDispatcher() /home/ag/work/qt5/qtbase/src/corelib/thread/qthread_p.h:254 (libQt6Core.so.6+0x228a74) #6 QThreadPrivate::start(void*) /home/ag/work/qt5/qtbase/src/corelib/thread/qthread_unix.cpp:310 (libQt6Core.so.6+0x54aa79) #7 <null> <null> (libtsan.so.0+0x2c34f) Thread T3 (tid=6651, running) created by main thread at: #0 pthread_create <null> (libtsan.so.0+0x5d445) #1 QThread::start(QThread::Priority) /home/ag/work/qt5/qtbase/src/corelib/thread/qthread_unix.cpp:715 (libQt6Core.so.6+0x54b8ef) #2 QThreadPoolPrivate::startThread(QRunnable*) /home/ag/work/qt5/qtbase/src/corelib/thread/qthreadpool.cpp:268 (libQt6Core.so.6+0x556271) #3 QThreadPoolPrivate::tryStart(QRunnable*) /home/ag/work/qt5/qtbase/src/corelib/thread/qthreadpool.cpp:202 (libQt6Core.so.6+0x555c4f) #4 QThreadPool::start(QRunnable*, int) /home/ag/work/qt5/qtbase/src/corelib/thread/qthreadpool.cpp:505 (libQt6Core.so.6+0x556e8b) #5 QtConcurrent::RunFunctionTaskBase<void>::start(QtConcurrent::TaskStartParameters const&) include/QtConcurrent/../../../../qt5/qtbase/src/concurrent/qtconcurrentrunbase.h:96 (tst_qurl+0x55478) #6 QtConcurrent::NonPromiseTaskResolver<void (tst_QUrl::*)(), tst_QUrl*>::run(std::tuple<void (tst_QUrl::*)(), tst_QUrl*>&&, QtConcurrent::TaskStartParameters const&) include/QtConcurrent/../../../../qt5/qtbase/src/concurrent/qtconcurrentstoredfunctioncall.h:208 (tst_qurl+0x512f1) #7 auto QtConcurrent::run<void (tst_QUrl::*)(), tst_QUrl*>(QThreadPool*, void (tst_QUrl::*&&)(), tst_QUrl*&&) include/QtConcurrent/../../../../qt5/qtbase/src/concurrent/qtconcurrentrun.h:83 (tst_qurl+0x513f0) #8 auto QtConcurrent::run<void (tst_QUrl::*)(), tst_QUrl*>(void (tst_QUrl::*&&)(), tst_QUrl*&&) include/QtConcurrent/../../../../qt5/qtbase/src/concurrent/qtconcurrentrun.h:100 (tst_qurl+0x51493) #9 tst_QUrl::testThreading() /home/ag/work/qt5/qtbase/tests/auto/corelib/io/qurl/tst_qurl.cpp:4131 (tst_qurl+0x4b2d0) #10 tst_QUrl::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) tests/auto/corelib/io/qurl/tst_qurl_autogen/include/tst_qurl.moc:682 (tst_qurl+0x4df91) #11 QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const /home/ag/work/qt5/qtbase/src/corelib/kernel/qmetaobject.cpp:2340 (libQt6Core.so.6+0x234cd3) #12 QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const include/QtCore/../../../../qt5/qtbase/src/corelib/kernel/qmetaobject.h:125 (libQt6Test.so.6+0x3d419) #13 QTest::TestMethods::invokeTestOnData(int) const /home/ag/work/qt5/qtbase/src/testlib/qtestcase.cpp:934 (libQt6Test.so.6+0x343cc) #14 QTest::TestMethods::invokeTest(int, char const*, QTest::WatchDog*) const /home/ag/work/qt5/qtbase/src/testlib/qtestcase.cpp:1163 (libQt6Test.so.6+0x3515d) #15 QTest::TestMethods::invokeTests(QObject*) const /home/ag/work/qt5/qtbase/src/testlib/qtestcase.cpp:1506 (libQt6Test.so.6+0x36ac7) #16 QTest::qRun() /home/ag/work/qt5/qtbase/src/testlib/qtestcase.cpp:1933 (libQt6Test.so.6+0x3746c) #17 QTest::qExec(QObject*, int, char**) /home/ag/work/qt5/qtbase/src/testlib/qtestcase.cpp:1841 (libQt6Test.so.6+0x36e23) #18 main /home/ag/work/qt5/qtbase/tests/auto/corelib/io/qurl/tst_qurl.cpp:4258 (tst_qurl+0x4d5c1) Thread T2 'Thread (pooled)' (tid=6650, running) created by main thread at: #0 pthread_create <null> (libtsan.so.0+0x5d445) #1 QThread::start(QThread::Priority) /home/ag/work/qt5/qtbase/src/corelib/thread/qthread_unix.cpp:715 (libQt6Core.so.6+0x54b8ef) #2 QThreadPoolPrivate::startThread(QRunnable*) /home/ag/work/qt5/qtbase/src/corelib/thread/qthreadpool.cpp:268 (libQt6Core.so.6+0x556271) #3 QThreadPoolPrivate::tryStart(QRunnable*) /home/ag/work/qt5/qtbase/src/corelib/thread/qthreadpool.cpp:174 (libQt6Core.so.6+0x555ac2) #4 QThreadPool::start(QRunnable*, int) /home/ag/work/qt5/qtbase/src/corelib/thread/qthreadpool.cpp:505 (libQt6Core.so.6+0x556e8b) #5 QtConcurrent::RunFunctionTaskBase<void>::start(QtConcurrent::TaskStartParameters const&) include/QtConcurrent/../../../../qt5/qtbase/src/concurrent/qtconcurrentrunbase.h:96 (tst_qurl+0x55478) #6 QtConcurrent::NonPromiseTaskResolver<void (tst_QUrl::*)(), tst_QUrl*>::run(std::tuple<void (tst_QUrl::*)(), tst_QUrl*>&&, QtConcurrent::TaskStartParameters const&) include/QtConcurrent/../../../../qt5/qtbase/src/concurrent/qtconcurrentstoredfunctioncall.h:208 (tst_qurl+0x512f1) #7 auto QtConcurrent::run<void (tst_QUrl::*)(), tst_QUrl*>(QThreadPool*, void (tst_QUrl::*&&)(), tst_QUrl*&&) include/QtConcurrent/../../../../qt5/qtbase/src/concurrent/qtconcurrentrun.h:83 (tst_qurl+0x513f0) #8 auto QtConcurrent::run<void (tst_QUrl::*)(), tst_QUrl*>(void (tst_QUrl::*&&)(), tst_QUrl*&&) include/QtConcurrent/../../../../qt5/qtbase/src/concurrent/qtconcurrentrun.h:100 (tst_qurl+0x51493) #9 tst_QUrl::testThreading() /home/ag/work/qt5/qtbase/tests/auto/corelib/io/qurl/tst_qurl.cpp:4131 (tst_qurl+0x4b2d0) #10 tst_QUrl::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) tests/auto/corelib/io/qurl/tst_qurl_autogen/include/tst_qurl.moc:682 (tst_qurl+0x4df91) #11 QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const /home/ag/work/qt5/qtbase/src/corelib/kernel/qmetaobject.cpp:2340 (libQt6Core.so.6+0x234cd3) #12 QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const include/QtCore/../../../../qt5/qtbase/src/corelib/kernel/qmetaobject.h:125 (libQt6Test.so.6+0x3d419) #13 QTest::TestMethods::invokeTestOnData(int) const /home/ag/work/qt5/qtbase/src/testlib/qtestcase.cpp:934 (libQt6Test.so.6+0x343cc) #14 QTest::TestMethods::invokeTest(int, char const*, QTest::WatchDog*) const /home/ag/work/qt5/qtbase/src/testlib/qtestcase.cpp:1163 (libQt6Test.so.6+0x3515d) #15 QTest::TestMethods::invokeTests(QObject*) const /home/ag/work/qt5/qtbase/src/testlib/qtestcase.cpp:1506 (libQt6Test.so.6+0x36ac7) #16 QTest::qRun() /home/ag/work/qt5/qtbase/src/testlib/qtestcase.cpp:1933 (libQt6Test.so.6+0x3746c) #17 QTest::qExec(QObject*, int, char**) /home/ag/work/qt5/qtbase/src/testlib/qtestcase.cpp:1841 (libQt6Test.so.6+0x36e23) #18 main /home/ag/work/qt5/qtbase/tests/auto/corelib/io/qurl/tst_qurl.cpp:4258 (tst_qurl+0x4d5c1) SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x368af) in memset ================== ================== WARNING: ThreadSanitizer: data race (pid=6647) Write of size 8 at 0x7b4000040360 by thread T9: #0 memset <null> (libtsan.so.0+0x368af) #1 g_slice_alloc0 <null> (libglib-2.0.so.0+0x69f4d) #2 QCoreApplication::processEvents(QFlags<QEventLoop::ProcessEventsFlag>, int) /home/ag/work/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1300 (libQt6Core.so.6+0x20b0bc) #3 QTest::qWait(int) /home/ag/work/qt5/qtbase/src/corelib/kernel/qtestsupport_core.cpp:119 (libQt6Core.so.6+0x2fd04e) #4 tst_QUrl::testThreadingHelper() /home/ag/work/qt5/qtbase/tests/auto/corelib/io/qurl/tst_qurl.cpp:4118 (tst_qurl+0x4b01a) #5 void std::__invoke_impl<void, void (tst_QUrl::*&)(), tst_QUrl*&>(std::__invoke_memfun_deref, void (tst_QUrl::*&)(), tst_QUrl*&) /usr/include/c++/10/bits/invoke.h:73 (tst_qurl+0x60c3d) #6 std::__invoke_result<void (tst_QUrl::*&)(), tst_QUrl*&>::type std::__invoke<void (tst_QUrl::*&)(), tst_QUrl*&>(void (tst_QUrl::*&)(), tst_QUrl*&) /usr/include/c++/10/bits/invoke.h:95 (tst_qurl+0x60a6c) #7 std::invoke_result<void (tst_QUrl::*&)(), tst_QUrl*&>::type std::invoke<void (tst_QUrl::*&)(), tst_QUrl*&>(void (tst_QUrl::*&)(), tst_QUrl*&) /usr/include/c++/10/functional:88 (tst_qurl+0x608d3) #8 QtConcurrent::StoredFunctionCall<void (tst_QUrl::*)(), tst_QUrl*>::runFunctor()::{lambda(void (tst_QUrl::*)(), tst_QUrl*)#1}::operator()(void (tst_QUrl::*)(), tst_QUrl*) const include/QtConcurrent/../../../../qt5/qtbase/src/concurrent/qtconcurrentstoredfunctioncall.h:152 (tst_qurl+0x606f4) #9 void std::__invoke_impl<void, QtConcurrent::StoredFunctionCall<void (tst_QUrl::*)(), tst_QUrl*>::runFunctor()::{lambda(void (tst_QUrl::* const&)(), tst_QUrl*)#1}, void (tst_QUrl::*)(), tst_QUrl*>(std::__invoke_other, QtConcurrent::StoredFunctionCall<void (tst_QUrl::*)(), tst_QUrl*>::runFunctor()::{lambda(void (tst_QUrl::* const&)(), tst_QUrl*)#1}, void (tst_QUrl::*&&)(), tst_QUrl*&&) /usr/include/c++/10/bits/invoke.h:60 (tst_qurl+0x60b87) #10 std::__invoke_result<QtConcurrent::StoredFunctionCall<void (tst_QUrl::*)(), tst_QUrl*>::runFunctor()::{lambda(void (tst_QUrl::* const&)(), tst_QUrl*)#1}, void (tst_QUrl::*)(), tst_QUrl*>::type std::__invoke<QtConcurrent::StoredFunctionCall<void (tst_QUrl::*)(), tst_QUrl*>::runFunctor()::{lambda(void (tst_QUrl::* const&)(), tst_QUrl*)#1}, void (tst_QUrl::*)(), tst_QUrl*>(std::__invoke_result&&, (QtConcurrent::StoredFunctionCall<void (tst_QUrl::*)(), tst_QUrl*>::runFunctor()::{lambda(void (tst_QUrl::* const&)(), tst_QUrl*)#1})...) /usr/include/c++/10/bits/invoke.h:95 (tst_qurl+0x609e9) #11 decltype(auto) std::__apply_impl<QtConcurrent::StoredFunctionCall<void (tst_QUrl::*)(), tst_QUrl*>::runFunctor()::{lambda(void (tst_QUrl::* const&)(), tst_QUrl*)#1}, std::tuple<void (tst_QUrl::*)(), tst_QUrl*>, 0ul, 1ul>(QtConcurrent::StoredFunctionCall<void (tst_QUrl::*)(), tst_QUrl*>::runFunctor()::{lambda(void (tst_QUrl::* const&)(), tst_QUrl*)#1}, std::tuple<void (tst_QUrl::*)(), tst_QUrl*>&&, std::integer_sequence<unsigned long, 0ul, 1ul>) /usr/include/c++/10/tuple:1727 (tst_qurl+0x6077c) #12 decltype(auto) std::apply<QtConcurrent::StoredFunctionCall<void (tst_QUrl::*)(), tst_QUrl*>::runFunctor()::{lambda(void (tst_QUrl::* const&)(), tst_QUrl*)#1}, std::tuple<void (tst_QUrl::*)(), tst_QUrl*> >(QtConcurrent::StoredFunctionCall<void (tst_QUrl::*)(), tst_QUrl*>::runFunctor()::{lambda(void (tst_QUrl::* const&)(), tst_QUrl*)#1}, std::tuple<void (tst_QUrl::*)(), tst_QUrl*>&&) /usr/include/c++/10/tuple:1738 (tst_qurl+0x607e3) #13 QtConcurrent::StoredFunctionCall<void (tst_QUrl::*)(), tst_QUrl*>::runFunctor() include/QtConcurrent/../../../../qt5/qtbase/src/concurrent/qtconcurrentstoredfunctioncall.h:156 (tst_qurl+0x6084f) #14 QtConcurrent::RunFunctionTaskBase<void>::run() include/QtConcurrent/../../../../qt5/qtbase/src/concurrent/qtconcurrentrunbase.h:112 (tst_qurl+0x6057e) #15 QThreadPoolThread::run() /home/ag/work/qt5/qtbase/src/corelib/thread/qthreadpool.cpp:99 (libQt6Core.so.6+0x555399) #16 QThreadPrivate::start(void*) /home/ag/work/qt5/qtbase/src/corelib/thread/qthread_unix.cpp:330 (libQt6Core.so.6+0x54abdb) #17 <null> <null> (libtsan.so.0+0x2c34f) Previous write of size 8 at 0x7b4000040360 by thread T8: #0 posix_memalign <null> (libtsan.so.0+0x2f579) #1 <null> <null> (libglib-2.0.so.0+0x69206) #2 QEventDispatcherGlib::QEventDispatcherGlib(QObject*) /home/ag/work/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:364 (libQt6Core.so.6+0x6e1b2a) #3 QThreadPrivate::createEventDispatcher(QThreadData*) /home/ag/work/qt5/qtbase/src/corelib/thread/qthread_unix.cpp:258 (libQt6Core.so.6+0x54a820) #4 QThreadData::createEventDispatcher() /home/ag/work/qt5/qtbase/src/corelib/thread/qthread.cpp:126 (libQt6Core.so.6+0x4300f8) #5 QThreadData::ensureEventDispatcher() /home/ag/work/qt5/qtbase/src/corelib/thread/qthread_p.h:254 (libQt6Core.so.6+0x228a74) #6 QThreadPrivate::start(void*) /home/ag/work/qt5/qtbase/src/corelib/thread/qthread_unix.cpp:310 (libQt6Core.so.6+0x54aa79) #7 <null> <null> (libtsan.so.0+0x2c34f) Location is heap block of size 240 at 0x7b4000040300 allocated by thread T8: #0 posix_memalign <null> (libtsan.so.0+0x2f579) #1 <null> <null> (libglib-2.0.so.0+0x69206) #2 QEventDispatcherGlib::QEventDispatcherGlib(QObject*) /home/ag/work/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:364 (libQt6Core.so.6+0x6e1b2a) #3 QThreadPrivate::createEventDispatcher(QThreadData*) /home/ag/work/qt5/qtbase/src/corelib/thread/qthread_unix.cpp:258 (libQt6Core.so.6+0x54a820) #4 QThreadData::createEventDispatcher() /home/ag/work/qt5/qtbase/src/corelib/thread/qthread.cpp:126 (libQt6Core.so.6+0x4300f8) #5 QThreadData::ensureEventDispatcher() /home/ag/work/qt5/qtbase/src/corelib/thread/qthread_p.h:254 (libQt6Core.so.6+0x228a74) #6 QThreadPrivate::start(void*) /home/ag/work/qt5/qtbase/src/corelib/thread/qthread_unix.cpp:310 (libQt6Core.so.6+0x54aa79) #7 <null> <null> (libtsan.so.0+0x2c34f) Thread T9 'Thread (pooled)' (tid=6659, running) created by main thread at: #0 pthread_create <null> (libtsan.so.0+0x5d445) #1 QThread::start(QThread::Priority) /home/ag/work/qt5/qtbase/src/corelib/thread/qthread_unix.cpp:715 (libQt6Core.so.6+0x54b8ef) #2 QThreadPoolPrivate::startThread(QRunnable*) /home/ag/work/qt5/qtbase/src/corelib/thread/qthreadpool.cpp:268 (libQt6Core.so.6+0x556271) #3 QThreadPoolPrivate::tryStart(QRunnable*) /home/ag/work/qt5/qtbase/src/corelib/thread/qthreadpool.cpp:202 (libQt6Core.so.6+0x555c4f) #4 QThreadPool::start(QRunnable*, int) /home/ag/work/qt5/qtbase/src/corelib/thread/qthreadpool.cpp:505 (libQt6Core.so.6+0x556e8b) #5 QtConcurrent::RunFunctionTaskBase<void>::start(QtConcurrent::TaskStartParameters const&) include/QtConcurrent/../../../../qt5/qtbase/src/concurrent/qtconcurrentrunbase.h:96 (tst_qurl+0x55478) #6 QtConcurrent::NonPromiseTaskResolver<void (tst_QUrl::*)(), tst_QUrl*>::run(std::tuple<void (tst_QUrl::*)(), tst_QUrl*>&&, QtConcurrent::TaskStartParameters const&) include/QtConcurrent/../../../../qt5/qtbase/src/concurrent/qtconcurrentstoredfunctioncall.h:208 (tst_qurl+0x512f1) #7 auto QtConcurrent::run<void (tst_QUrl::*)(), tst_QUrl*>(QThreadPool*, void (tst_QUrl::*&&)(), tst_QUrl*&&) include/QtConcurrent/../../../../qt5/qtbase/src/concurrent/qtconcurrentrun.h:83 (tst_qurl+0x513f0) #8 auto QtConcurrent::run<void (tst_QUrl::*)(), tst_QUrl*>(void (tst_QUrl::*&&)(), tst_QUrl*&&) include/QtConcurrent/../../../../qt5/qtbase/src/concurrent/qtconcurrentrun.h:100 (tst_qurl+0x51493) #9 tst_QUrl::testThreading() /home/ag/work/qt5/qtbase/tests/auto/corelib/io/qurl/tst_qurl.cpp:4131 (tst_qurl+0x4b2d0) #10 tst_QUrl::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) tests/auto/corelib/io/qurl/tst_qurl_autogen/include/tst_qurl.moc:682 (tst_qurl+0x4df91) #11 QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const /home/ag/work/qt5/qtbase/src/corelib/kernel/qmetaobject.cpp:2340 (libQt6Core.so.6+0x234cd3) #12 QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const include/QtCore/../../../../qt5/qtbase/src/corelib/kernel/qmetaobject.h:125 (libQt6Test.so.6+0x3d419) #13 QTest::TestMethods::invokeTestOnData(int) const /home/ag/work/qt5/qtbase/src/testlib/qtestcase.cpp:934 (libQt6Test.so.6+0x343cc) #14 QTest::TestMethods::invokeTest(int, char const*, QTest::WatchDog*) const /home/ag/work/qt5/qtbase/src/testlib/qtestcase.cpp:1163 (libQt6Test.so.6+0x3515d) #15 QTest::TestMethods::invokeTests(QObject*) const /home/ag/work/qt5/qtbase/src/testlib/qtestcase.cpp:1506 (libQt6Test.so.6+0x36ac7) #16 QTest::qRun() /home/ag/work/qt5/qtbase/src/testlib/qtestcase.cpp:1933 (libQt6Test.so.6+0x3746c) #17 QTest::qExec(QObject*, int, char**) /home/ag/work/qt5/qtbase/src/testlib/qtestcase.cpp:1841 (libQt6Test.so.6+0x36e23) #18 main /home/ag/work/qt5/qtbase/tests/auto/corelib/io/qurl/tst_qurl.cpp:4258 (tst_qurl+0x4d5c1) Thread T8 'Thread (pooled)' (tid=6658, running) created by main thread at: #0 pthread_create <null> (libtsan.so.0+0x5d445) #1 QThread::start(QThread::Priority) /home/ag/work/qt5/qtbase/src/corelib/thread/qthread_unix.cpp:715 (libQt6Core.so.6+0x54b8ef) #2 QThreadPoolPrivate::startThread(QRunnable*) /home/ag/work/qt5/qtbase/src/corelib/thread/qthreadpool.cpp:268 (libQt6Core.so.6+0x556271) #3 QThreadPoolPrivate::tryStart(QRunnable*) /home/ag/work/qt5/qtbase/src/corelib/thread/qthreadpool.cpp:202 (libQt6Core.so.6+0x555c4f) #4 QThreadPool::start(QRunnable*, int) /home/ag/work/qt5/qtbase/src/corelib/thread/qthreadpool.cpp:505 (libQt6Core.so.6+0x556e8b) #5 QtConcurrent::RunFunctionTaskBase<void>::start(QtConcurrent::TaskStartParameters const&) include/QtConcurrent/../../../../qt5/qtbase/src/concurrent/qtconcurrentrunbase.h:96 (tst_qurl+0x55478) #6 QtConcurrent::NonPromiseTaskResolver<void (tst_QUrl::*)(), tst_QUrl*>::run(std::tuple<void (tst_QUrl::*)(), tst_QUrl*>&&, QtConcurrent::TaskStartParameters const&) include/QtConcurrent/../../../../qt5/qtbase/src/concurrent/qtconcurrentstoredfunctioncall.h:208 (tst_qurl+0x512f1) #7 auto QtConcurrent::run<void (tst_QUrl::*)(), tst_QUrl*>(QThreadPool*, void (tst_QUrl::*&&)(), tst_QUrl*&&) include/QtConcurrent/../../../../qt5/qtbase/src/concurrent/qtconcurrentrun.h:83 (tst_qurl+0x513f0) #8 auto QtConcurrent::run<void (tst_QUrl::*)(), tst_QUrl*>(void (tst_QUrl::*&&)(), tst_QUrl*&&) include/QtConcurrent/../../../../qt5/qtbase/src/concurrent/qtconcurrentrun.h:100 (tst_qurl+0x51493) #9 tst_QUrl::testThreading() /home/ag/work/qt5/qtbase/tests/auto/corelib/io/qurl/tst_qurl.cpp:4131 (tst_qurl+0x4b2d0) #10 tst_QUrl::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) tests/auto/corelib/io/qurl/tst_qurl_autogen/include/tst_qurl.moc:682 (tst_qurl+0x4df91) #11 QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const /home/ag/work/qt5/qtbase/src/corelib/kernel/qmetaobject.cpp:2340 (libQt6Core.so.6+0x234cd3) #12 QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const include/QtCore/../../../../qt5/qtbase/src/corelib/kernel/qmetaobject.h:125 (libQt6Test.so.6+0x3d419) #13 QTest::TestMethods::invokeTestOnData(int) const /home/ag/work/qt5/qtbase/src/testlib/qtestcase.cpp:934 (libQt6Test.so.6+0x343cc) #14 QTest::TestMethods::invokeTest(int, char const*, QTest::WatchDog*) const /home/ag/work/qt5/qtbase/src/testlib/qtestcase.cpp:1163 (libQt6Test.so.6+0x3515d) #15 QTest::TestMethods::invokeTests(QObject*) const /home/ag/work/qt5/qtbase/src/testlib/qtestcase.cpp:1506 (libQt6Test.so.6+0x36ac7) #16 QTest::qRun() /home/ag/work/qt5/qtbase/src/testlib/qtestcase.cpp:1933 (libQt6Test.so.6+0x3746c) #17 QTest::qExec(QObject*, int, char**) /home/ag/work/qt5/qtbase/src/testlib/qtestcase.cpp:1841 (libQt6Test.so.6+0x36e23) #18 main /home/ag/work/qt5/qtbase/tests/auto/corelib/io/qurl/tst_qurl.cpp:4258 (tst_qurl+0x4d5c1) SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x368af) in memset ==================
My setup: Ubuntu 18.04, GCC 10, cmake with -DFEATURE_sanitize_thread=ON