Details
-
Bug
-
Resolution: Incomplete
-
P1: Critical
-
None
-
5.15.8
-
None
-
Windows 10, 1909
Description
Problem
After upgrading the development environment from Qt 5.15.7 to Qt 5.15.8 we have a regression, as a whole component's unit test running in Debug is no longer working and crashes.
Running the tests in Release build works w/o crashing.
Technical Background
The component uses QWebEngineView to perform some HTML to PDF business in the background. C++ context is
// create the Chromium we use to render, register our credentials interceptor view = std::make_unique<QWebEngineView>(); view->show(); QWebEngineProfile::defaultProfile()->setRequestInterceptor(&interceptor);
The crash occurs when invoking view->show().
Debugging the Problem
After installing .pdb and sources the problem seems to come from Chromiums AssertMemoryPriority in platform_thread_win.cc
[9656:9428:0124/090838.366:FATAL:platform_thread_win.cc(212)] Check failed: memory_priority == static_cast<int>(memory_priority_information.MemoryPriority) (5 vs. 3)
stack trace to get there
> Qt5WebEngineCored.dll!base::debug::BreakDebugger() Line 31 C++ Qt5WebEngineCored.dll!logging::LogMessage::~LogMessage() Line 879 C++ [External Code] Qt5WebEngineCored.dll!logging::CheckError::DCheckOp(const char * file, int line, logging::CheckOpResult * check_op_result) Line 35 C++ Qt5WebEngineCored.dll!base::internal::AssertMemoryPriority(void * thread, int memory_priority) Line 211 C++ Qt5WebEngineCored.dll!base::PlatformThread::SetCurrentThreadPriorityImpl(base::ThreadPriority priority) Line 348 C++ Qt5WebEngineCored.dll!base::PlatformThread::SetCurrentThreadPriority(base::ThreadPriority priority) Line 33 C++ Qt5WebEngineCored.dll!base::`anonymous namespace'::ThreadFunc(void * params) Line 93 C++ [External Code]
Chromiums affected code seems to be
void PlatformThread::SetCurrentThreadPriorityImpl(ThreadPriority priority)
Stepping into Qt code, the last call before the crash is on line qwidget.cpp:8136, invoking show_helper(). From there on it's Chromium.