Would it make sense to either expand README.developer or add a README.threading, detailing the new startup procedure? Otherwise we might run into issues later where users might face those exact issues.
On Fri, Feb 2, 2018 at 7:33 PM, Gerald Combs <ger...@wireshark.org> wrote: > That's correct -- the main and RecentFileStatus threads could operate on > the filename at the same time. I think the data race is harmless in this > case, but it's easy enough to create a local copy of the filename. Fix > inbound at https://code.wireshark.org/review/#/c/25572. > > On 2/2/18 8:08 AM, Jaap Keuter wrote: > > Hi, > > > > Good question. > > Just spitballing here, in what thread are the constructors running? > > RecentFileStatus::filename_ is being set during construction, but is > run() already called from the other thread? > > > > Jaap > > > > > >> On 2 Feb 2018, at 15:04, Stig Bjørlykke <s...@bjorlykke.org> wrote: > >> > >> 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 > > > > ____________________________________________________________ > _______________ > > Sent via: Wireshark-dev mailing list <wireshark-dev@wireshark.org> > > Archives: https://www.wireshark.org/lists/wireshark-dev > > Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev > > mailto:wireshark-dev-requ...@wireshark.org?subject= > unsubscribe > > > > ____________________________________________________________ > _______________ > Sent via: Wireshark-dev mailing list <wireshark-dev@wireshark.org> > Archives: https://www.wireshark.org/lists/wireshark-dev > Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev > mailto:wireshark-dev-requ...@wireshark.org?subject= > unsubscribe >
___________________________________________________________________________ Sent via: Wireshark-dev mailing list <wireshark-dev@wireshark.org> Archives: https://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe