Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-100153

Using QWebEngineView from Qt 5.15.8 in Visual Studio 2017 Debug fails

    XMLWordPrintable

Details

    • Bug
    • Resolution: Incomplete
    • P1: Critical
    • None
    • 5.15.8
    • WebEngine
    • None
    • Windows 10, 1909
    • Windows

    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.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            qt_webengine_team Qt WebEngine Team
            ssproessig Sören Sprößig
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes