QtWebEngine asserts when an application calls, in that order
ASSERT: "m_updateHttpCache" in file /d/qt/5/kde/qtwebengine/src/core/url_request_context_getter_qt.cpp
It's a race condition (semantic race, not C++11 data race), so it doesn't happen 100% of the time, but still too often
The attached patch for qtwebengine/tests/auto/widgets/qwebengineprofile/tst_qwebengineprofile reproduces the issue. This appeared in Qt 5.9 (KMail was doing the same with 5.8 without hitting any assert).
Here's my debug output of what happens with that m_updateHttpCache boolean :
Clearly, setting a bool and then checking it in another thread is not a valid programming practice, another call in the main thread can have changed that bool again meanwhile.
But I'm not sure how this should be fixed.
|For Gerrit Dashboard: QTBUG-61047|
|195848,6||Fix ASSERT in URLRequestContextGetterQt due to race condition||5.9||qt/qtwebengine||Status: MERGED||+2||0|