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

Crash in QWebEngineCore

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P1: Critical
    • Resolution: Done
    • Affects Version/s: 5.14.2, 5.15.0 RC2
    • Fix Version/s: 5.15.1
    • Component/s: WebEngine
    • Labels:
      None
    • Platform/s:
      Linux/X11, Windows
    • Commits:
      17cac776b2ec30af8f928d648f4708f8e1a25b5e (qt/qtwebengine/5.15)

      Description

      Using File > Save Online in MuseScore we use WebEngine to upload score files to musescore.com, resp. to show a dialog to set some score properties.
      In (64-bit) builds using Qt 5.14.2 (msvc2017_64) or 5.15.0-RC2 (msvc2019_64) this crashes, apparently right after the file got uploaded and just before the Web dialog should show to set these score properties (nice name, whether Public Domain or Original Work or some foreign copyright, whether to share publicly, etc).
      No such crash happens with QT 5.9.8 nor with Qt 5.12.8. 32-bit builds have not (yet) been tried.
      Particularly annoying in connection with QTBUG-81727, as with VS2019 16.6 we can't use those older working Qt versions and not the new crashing ones either.

      Crash:

      Exception thrown: read access violation.
      content::WebContentsDelegate::GetJavaScriptDialogManager[virtual](...) returned nullptr.
      

      Function where the crash occurs:

      void WebContentsDelegateQt::CloseContents(content::WebContents *source)
      {
           m_viewClient->close();
           GetJavaScriptDialogManager(source)->CancelDialogs(source, /* whatever?: */false);
      }
      

      Stack trace, produced with VS2019 16.6 and Qt 5.14.2 (but the same happens with VS2019 16.5.4 and Qt 5.15.0 RC2):

      Qt5WebEngineCore.dll!QtWebEngineCore::WebContentsDelegateQt::CloseContents(content::WebContents * source) Line 256
      Qt5WebEngineCore.dll!content::WebContentsImpl::Close(content::RenderViewHost * rvh) Line 5882
      [Inline Frame] Qt5WebEngineCore.dll!base::DispatchToMethodImpl(content::RenderWidgetHostImpl * const &) Line 52
      [Inline Frame] Qt5WebEngineCore.dll!base::DispatchToMethod(content::RenderWidgetHostImpl * const &) Line 60
      [Inline Frame] Qt5WebEngineCore.dll!IPC::DispatchToMethod(content::RenderWidgetHostImpl *) Line 51
      Qt5WebEngineCore.dll!IPC::MessageT,void>::Dispatch(const IPC::Message * msg, content::RenderWidgetHostImpl * obj, content::RenderWidgetHostImpl * sender, void * parameter, void(content::RenderWidgetHostImpl::*)() func) Line 146
      Qt5WebEngineCore.dll!content::RenderWidgetHostImpl::OnMessageReceived(const IPC::Message & msg) Line 618
      Qt5WebEngineCore.dll!content::RenderProcessHostImpl::OnMessageReceived(const IPC::Message & msg) Line 3358
      Qt5WebEngineCore.dll!IPC::ChannelProxy::Context::OnDispatchMessage(const IPC::Message & message) Line 324
      [Inline Frame] Qt5WebEngineCore.dll!base::OnceCallback::Run() Line 98
      Qt5WebEngineCore.dll!base::TaskAnnotator::RunTask(const char * trace_event_name, base::PendingTask * pending_task) Line 142
      Qt5WebEngineCore.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::sequence_manager::LazyNow * continuation_lazy_now, bool * ran_task) Line 366
      Qt5WebEngineCore.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() Line 270
      [Inline Frame] Qt5WebEngineCore.dll!QtWebEngineCore::MessagePumpForUIQt::handleScheduledWork() Line 204
      [Inline Frame] Qt5WebEngineCore.dll!QtWebEngineCore::MessagePumpForUIQt::::operator()() Line 117
      [Inline Frame] Qt5WebEngineCore.dll!std::_Invoker_functor::_Call(QtWebEngineCore::MessagePumpForUIQt:: &)
      [Inline Frame] Qt5WebEngineCore.dll!std::invoke(QtWebEngineCore::MessagePumpForUIQt:: &)
      [Inline Frame] Qt5WebEngineCore.dll!std::_Invoker_ret::_Call(QtWebEngineCore::MessagePumpForUIQt:: &)
      Qt5WebEngineCore.dll!std::_Func_impl_no_alloc<,void>::_Do_call()
      Qt5Core.dll!QObject::event(QEvent * e) Line 1366
      Qt5Widgets.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) Line 3687
      Qt5Widgets.dll!QApplication::notify(QObject * receiver, QEvent * e) Line 3639
      Qt5Core.dll!QCoreApplication::notifyInternal2(QObject * receiver, QEvent * event) Line 1075
      [Inline Frame] Qt5Core.dll!QCoreApplication::sendEvent(QObject *) Line 1470
      Qt5Core.dll!QCoreApplicationPrivate::sendPostedEvents(QObject * receiver, int event_type, QThreadData * data) Line 1815
      qwindows.dll!QWindowsGuiEventDispatcher::sendPostedEvents() Line 82
      Qt5Core.dll!QEventDispatcherWin32::processEvents(QFlags flags) Line 525
      qwindows.dll!QWindowsGuiEventDispatcher::processEvents(QFlags flags) Line 75
      [Inline Frame] Qt5Core.dll!QEventLoop::processEvents(QFlags) Line 138
      Qt5Core.dll!QEventLoop::exec(QFlags flags) Line 225
      Qt5Core.dll!QCoreApplication::exec() Line 1383
      MuseScore3.exe!Ms::runApplication(int & argc, char * * av) Line 7835
      MuseScore3.exe!main(int argc, char * * argv) Line 92
      [Inline Frame] MuseScore3.exe!invoke_main() Line 78
      MuseScore3.exe!__scrt_common_main_seh() Line 288
      kernel32.dll!BaseThreadInitThunk() Unknown
      ntdll.dll!RtlUserThreadStart() Unknown
      

      See also MuseScore issue #305700

        Attachments

          Issue Links

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

            Activity

              People

              Assignee:
              pvarga Peter Varga
              Reporter:
              jojo-schmitz Joachim Schmitz
              Votes:
              2 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Gerrit Reviews

                  There are no open Gerrit changes