When running with ThreadSanitizer I constantly get this race condition
report from a QString in RecentFileStatus. Anyone else seen this? I
can't figure out the issue...
==================
WARNING: ThreadSanitizer: data race (pid=41949)
Read of size 8 at 0x7b0c000c0dd0 by thread T18:
* #0 QString::QString(QString const&) qstring.h:906
(Wireshark:x86_64+0x100039756)
#1 QString::QString(QString const&) qstring.h:907
(Wireshark:x86_64+0x100038998)
#2 RecentFileStatus::run() recent_file_status.cpp:33
(Wireshark:x86_64+0x1004ffbec)
#3 non-virtual thunk to RecentFileStatus::run()
recent_file_status.cpp (Wireshark:x86_64+0x1004ffd2c)
#4 <null> <null>:8575680 (QtCore:x86_64+0x27b6d)
Previous write of size 8 at 0x7b0c000c0dd0 by main thread:
* #0 QString::QString(QString const&) qstring.h:906
(Wireshark:x86_64+0x10003976d)
#1 QString::QString(QString const&) qstring.h:907
(Wireshark:x86_64+0x100038998)
#2 RecentFileStatus::RecentFileStatus(QString, QObject*)
recent_file_status.cpp:13 (Wireshark:x86_64+0x1004ff8b3)
#3 RecentFileStatus::RecentFileStatus(QString, QObject*)
recent_file_status.cpp:14 (Wireshark:x86_64+0x1004ffac0)
#4 WiresharkApplication::refreshRecentCaptures()
wireshark_application.cpp:256 (Wireshark:x86_64+0x10079a3b6)
#5 WiresharkApplication::qt_static_metacall(QObject*,
QMetaObject::Call, int, void**)
moc_wireshark_application_Debug.cpp:234 (Wireshark:x86_64+0x1000bbceb)
#6 QMetaObject::activate(QObject*, int, int, void**)
<null>:8575680 (QtCore:x86_64+0x2194ba)
#7 main wireshark-qt.cpp:852 (Wireshark:x86_64+0x100037b0c)
Issue is caused by frames marked with "*".
Location is heap block of size 48 at 0x7b0c000c0db0 allocated by main thread:
#0 operator new(unsigned long) <null>:8575712
(libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x6ba8e)
#1 WiresharkApplication::refreshRecentCaptures()
wireshark_application.cpp:256 (Wireshark:x86_64+0x10079a36a)
#2 WiresharkApplication::qt_static_metacall(QObject*,
QMetaObject::Call, int, void**)
moc_wireshark_application_Debug.cpp:234 (Wireshark:x86_64+0x1000bbceb)
#3 QMetaObject::activate(QObject*, int, int, void**)
<null>:8575712 (QtCore:x86_64+0x2194ba)
#4 main wireshark-qt.cpp:852 (Wireshark:x86_64+0x100037b0c)
Thread T18 (tid=17501933, running) created by main thread at:
#0 pthread_create <null>:8575760
(libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a34d)
#1 QThread::start(QThread::Priority) <null>:8575760 (QtCore:x86_64+0x2b5cb)
#2 main wireshark-qt.cpp:667 (Wireshark:x86_64+0x100036bcd)
SUMMARY: ThreadSanitizer: data race qstring.h:906 in
QString::QString(QString const&)
==================
--
Stig Bjørlykke