Details
-
Bug
-
Resolution: Unresolved
-
P1: Critical
-
6.9
-
None
-
Windows, MinGW
Description
See QTBUG-131476 for the debugging details of the older regression-from-6.3 issue. This task is concentrated on the regression introduced in 6.9 with commit 4578e3f898e2c3221e08c1a39272993cb7790cd1(6.9), which replaced the adopted-thread-watcher-thread mechanism with a thread_local. Unfortunately, the state of thread_local on Windows is a mess.
As far as I can tell, since that commit, QThreadData will crash if:
- it's an adopted thread
- the adopted thread was started by winpthreads
- the toolchain used libgcc's __emutls support
Qt doesn't directly use winpthreads on Windows, which is why our unit tests haven't caught this. But if you use libstdc++ threading support like std::thread and std::async, it will on your behalf. So this is a unit-test to add to tst_qthread.cpp.
Attachments
Issue Links
- is required for
-
QTBUG-131476 Crash on deinitialization of QSqlDatabase object created in a thread
- Open