https://bugs.kde.org/show_bug.cgi?id=385703
Bug ID: 385703 Summary: QtWebengine documentatio viewer causes KDevelop crash on exit Product: kdevelop Version: 5.1.80 Platform: Compiled Sources OS: OS X Status: UNCONFIRMED Severity: normal Priority: NOR Component: Documentation viewer Assignee: kdevelop-bugs-n...@kde.org Reporter: rjvber...@gmail.com Target Milestone: --- The QtWebengine docviewer backend causes a systematic crash on exit on Mac (Qt 5.8.0). 1- launch a KDevelop session 2- click on the "Documentation" toolbar button 3- open the proposed (QtHelp) documentation section 4- repeat 2) to close the view 4- exit After step 3) I see this on the calling terminal: js: Not allowed to load local resource: file:///var/folders/j1/1439ppj08xj8h6006s6drbq00000gs/T/kdevelop.N13700 (NB: that's the simple CSS the plugin tries to use) QObject::startTimer: Timers can only be used with threads started with QThread QObject::startTimer: Timers can only be used with threads started with QThread QObject::startTimer: Timers can only be used with threads started with QThread QObject::startTimer: Timers can only be used with threads started with QThread QObject::startTimer: Timers can only be used with threads started with QThread QObject::startTimer: Timers can only be used with threads started with QThread QObject::startTimer: Timers can only be used with threads started with QThread QObject::startTimer: Timers can only be used with threads started with QThread QObject::startTimer: Timers can only be used with threads started with QThread QObject::startTimer: Timers can only be used with threads started with QThread QObject::startTimer: Timers can only be used with threads started with QThread QObject::startTimer: Timers can only be used with threads started with QThread QObject::startTimer: Timers can only be used with threads started with QThread QObject::startTimer: Timers can only be used with threads started with QThread QObject::startTimer: Timers can only be used with threads started with QThread QObject::startTimer: Timers can only be used with threads started with QThread QObject::startTimer: Timers can only be used with threads started with QThread js: Uncaught ReferenceError: mw is not defined js: Uncaught ReferenceError: mw is not defined QObject::startTimer: Timers can only be used with threads started with QThread backtrace below. The crash is deep in Qt but I haven't seen it with any other applications that use QWE. * thread #1, name = 'CrBrowserMain', queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x8) frame #0: QtWidgets`QWidget::~QWidget() [inlined] QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::data() const at qscopedpointer.h:140 [opt] 137 138 T *data() const Q_DECL_NOTHROW 139 { -> 140 return d; 141 } 142 143 bool isNull() const Q_DECL_NOTHROW (lldb) bt * thread #1, name = 'CrBrowserMain', queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x8) * frame #0: QtWidgets`QWidget::~QWidget() [inlined] QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::data() const at qscopedpointer.h:140 [opt] frame #1: QtWidgets`QWidget::~QWidget() [inlined] QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::pointer qGetPtrHelper<QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > >(QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > const&) at qglobal.h:971 [opt] frame #2: QtWidgets`QWidget::~QWidget() [inlined] QWidget::d_func(this=0x0000000000000000) at qwidget.h:131 [opt] frame #3: QtWidgets`QWidget::~QWidget(this=0x00007fe35dc3abb0) at qwidget.cpp:1602 [opt] frame #4: QtWidgets`QWidget::~QWidget() [inlined] QWidget::~QWidget(this=0x00007fe35dc3abb0) at qwidget.cpp:1556 [opt] frame #5: QtWidgets`QWidget::~QWidget(this=0x00007fe35dc3abb0) at qwidget.cpp:1556 [opt] frame #6: QtCore`QObject::event(QEvent*) [inlined] qDeleteInEventHandler(o=0x00007fe35dc3abb0) at qobject.cpp:4557 [opt] frame #7: QtCore`QObject::event(this=0x00007fe35dc3abb0, e=<unavailable>) at qobject.cpp:1254 [opt] frame #8: QtWidgets`QWidget::event(this=0x00007fe35dc3abb0, event=0x00007fe35945b110) at qwidget.cpp:9220 [opt] frame #9: QtWidgets`QApplicationPrivate::notify_helper(this=<unavailable>, receiver=0x00007fe35dc3abb0, e=0x00007fe35945b110) at qapplication.cpp:3745 [opt] frame #10: QtWidgets`QApplication::notify(this=<unavailable>, receiver=<unavailable>, e=<unavailable>) at qapplication.cpp:3708 [opt] frame #11: QtCore`QCoreApplication::notifyInternal2(receiver=0x00007fe35dc3abb0, event=0x00007fe35945b110) at qcoreapplication.cpp:995 [opt] frame #12: QtCore`QCoreApplicationPrivate::sendPostedEvents(receiver=0x0000000000000000, event_type=0, data=0x00007fe352515d40) at qcoreapplication.h:231 [opt] frame #13: QtQuick`QQuickRenderControl::~QQuickRenderControl() [inlined] QQuickRenderControlPrivate::windowDestroyed() at qquickrendercontrol.cpp:190 [opt] frame #14: QtQuick`QQuickRenderControl::~QQuickRenderControl(this=0x00007fe35b5465a0) at qquickrendercontrol.cpp:181 [opt] frame #15: QtQuickWidgets`QQuickWidgetRenderControl::~QQuickWidgetRenderControl() [inlined] QQuickWidgetRenderControl::~QQuickWidgetRenderControl(this=0x00007fe35b5465a0) at qquickwidget.cpp:83 [opt] frame #16: QtQuickWidgets`QQuickWidgetRenderControl::~QQuickWidgetRenderControl() [inlined] QQuickWidgetRenderControl::~QQuickWidgetRenderControl(this=0x00007fe35b5465a0) at qquickwidget.cpp:83 [opt] frame #17: QtQuickWidgets`QQuickWidgetRenderControl::~QQuickWidgetRenderControl(this=0x00007fe35b5465a0) at qquickwidget.cpp:83 [opt] frame #18: QtQuickWidgets`QQuickWidgetPrivate::~QQuickWidgetPrivate(this=0x00007fe356f0d420) at qquickwidget.cpp:212 [opt] frame #19: QtQuickWidgets`QQuickWidgetPrivate::~QQuickWidgetPrivate() [inlined] QQuickWidgetPrivate::~QQuickWidgetPrivate(this=0x00007fe356f0d420) at qquickwidget.cpp:202 [opt] frame #20: QtQuickWidgets`QQuickWidgetPrivate::~QQuickWidgetPrivate(this=0x00007fe356f0d420) at qquickwidget.cpp:202 [opt] frame #21: QtCore`QObject::~QObject() [inlined] QScopedPointerDeleter<QObjectData>::cleanup(pointer=<unavailable>) at qscopedpointer.h:60 [opt] frame #22: QtCore`QObject::~QObject() [inlined] QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::~QScopedPointer() at qscopedpointer.h:107 [opt] frame #23: QtCore`QObject::~QObject() [inlined] QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::~QScopedPointer() at qscopedpointer.h:105 [opt] frame #24: QtCore`QObject::~QObject(this=<unavailable>) at qobject.cpp:1049 [opt] frame #25: QtWidgets`QWidget::~QWidget(this=0x00007fe35d93d5a0) at qwidget.cpp:1714 [opt] frame #26: 0x0000000109db2fd1 QtWebEngineWidgets`non-virtual thunk to QtWebEngineCore::RenderWidgetHostViewQtDelegateWidget::~RenderWidgetHostViewQtDelegateWidget() + 193 frame #27: 0x0000000109e1eb59 QtWebEngineCore`QtWebEngineCore::RenderWidgetHostViewQt::~RenderWidgetHostViewQt() + 361 frame #28: 0x0000000109e1ed1e QtWebEngineCore`QtWebEngineCore::RenderWidgetHostViewQt::~RenderWidgetHostViewQt() + 14 frame #29: 0x000000010a4b9221 QtWebEngineCore`content::RenderWidgetHostImpl::Destroy(bool) + 113 frame #30: 0x000000010a4b4c1b QtWebEngineCore`content::RenderViewHostImpl::ShutdownAndDestroy() + 123 frame #31: 0x000000010a339d83 QtWebEngineCore`content::FrameTree::ReleaseRenderViewHostRef(content::RenderViewHostImpl*) + 355 frame #32: 0x000000010a34f5ad QtWebEngineCore`content::RenderFrameHostImpl::~RenderFrameHostImpl() + 685 frame #33: 0x000000010a34f9fe QtWebEngineCore`content::RenderFrameHostImpl::~RenderFrameHostImpl() + 14 frame #34: 0x000000010a361433 QtWebEngineCore`content::RenderFrameHostManager::~RenderFrameHostManager() + 275 frame #35: 0x000000010a33b9f9 QtWebEngineCore`content::FrameTreeNode::~FrameTreeNode() + 1129 frame #36: 0x000000010a338b5e QtWebEngineCore`content::FrameTree::~FrameTree() + 30 frame #37: 0x000000010a567762 QtWebEngineCore`content::WebContentsImpl::~WebContentsImpl() + 4050 frame #38: 0x000000010a5678ce QtWebEngineCore`content::WebContentsImpl::~WebContentsImpl() + 14 frame #39: 0x0000000109e3ac84 QtWebEngineCore`QtWebEngineCore::WebContentsAdapterPrivate::~WebContentsAdapterPrivate() + 36 frame #40: 0x0000000109e3bb1b QtWebEngineCore`QtWebEngineCore::WebContentsAdapter::~WebContentsAdapter() + 27 frame #41: 0x0000000109d9edad QtWebEngineWidgets`QWebEnginePagePrivate::~QWebEnginePagePrivate() + 157 frame #42: 0x0000000109d9edee QtWebEngineWidgets`QWebEnginePagePrivate::~QWebEnginePagePrivate() + 14 frame #43: 0x0000000109da0ee1 QtWebEngineWidgets`QWebEnginePage::~QWebEnginePage() + 49 frame #44: libKDevPlatformDocumentation.52.dylib`StandardDocumentationPage::~StandardDocumentationPage() [inlined] StandardDocumentationPage::~StandardDocumentationPage(this=0x00007fe359350ba0) at standarddocumentationview.cpp:54 [opt] frame #45: libKDevPlatformDocumentation.52.dylib`StandardDocumentationPage::~StandardDocumentationPage() [inlined] StandardDocumentationPage::~StandardDocumentationPage(this=0x00007fe359350ba0) at standarddocumentationview.cpp:54 [opt] frame #46: libKDevPlatformDocumentation.52.dylib`StandardDocumentationPage::~StandardDocumentationPage(this=0x00007fe359350ba0) at standarddocumentationview.cpp:54 [opt] frame #47: QtCore`QObjectPrivate::deleteChildren(this=0x00007fe35b70fb30) at qobject.cpp:1975 [opt] frame #48: QtWidgets`QWidget::~QWidget(this=0x00007fe35dc3abb0) at qwidget.cpp:1694 [opt] frame #49: libKDevPlatformDocumentation.52.dylib`KDevelop::StandardDocumentationView::~StandardDocumentationView() [inlined] KDevelop::StandardDocumentationView::~StandardDocumentationView(this=0x00007fe35dc3abb0) at standarddocumentationview.cpp:175 [opt] frame #50: libKDevPlatformDocumentation.52.dylib`KDevelop::StandardDocumentationView::~StandardDocumentationView() [inlined] KDevelop::StandardDocumentationView::~StandardDocumentationView(this=0x00007fe35dc3abb0) at standarddocumentationview.cpp:175 [opt] frame #51: libKDevPlatformDocumentation.52.dylib`KDevelop::StandardDocumentationView::~StandardDocumentationView(this=0x00007fe35dc3abb0) at standarddocumentationview.cpp:175 [opt] frame #52: QtCore`QObjectPrivate::deleteChildren(this=0x00007fe3587cdbd0) at qobject.cpp:1975 [opt] frame #53: QtWidgets`QWidget::~QWidget(this=0x00007fe358492a00) at qwidget.cpp:1694 [opt] frame #54: libKDevPlatformDocumentation.52.dylib`DocumentationView::~DocumentationView() [inlined] DocumentationView::~DocumentationView(this=<unavailable>) at documentationview.h:38 [opt] frame #55: libKDevPlatformDocumentation.52.dylib`DocumentationView::~DocumentationView() [inlined] DocumentationView::~DocumentationView(this=<unavailable>) at documentationview.h:38 [opt] frame #56: libKDevPlatformDocumentation.52.dylib`DocumentationView::~DocumentationView(this=0x00007fe358492a00) at documentationview.h:38 [opt] frame #57: QtCore`QObjectPrivate::deleteChildren(this=0x00007fe3587b9fa0) at qobject.cpp:1975 [opt] frame #58: QtWidgets`QWidget::~QWidget(this=0x00007fe358b26900) at qwidget.cpp:1694 [opt] frame #59: QtWidgets`QMainWindow::~QMainWindow() [inlined] QMainWindow::~QMainWindow(this=0x00007fe358b26900) at qmainwindow.cpp:410 [opt] frame #60: QtWidgets`QMainWindow::~QMainWindow() [inlined] QMainWindow::~QMainWindow(this=0x00007fe358b26900) at qmainwindow.cpp:410 [opt] frame #61: QtWidgets`QMainWindow::~QMainWindow(this=0x00007fe358b26900) at qmainwindow.cpp:410 [opt] frame #62: QtCore`QObjectPrivate::deleteChildren(this=0x00007fe3584874a0) at qobject.cpp:1975 [opt] frame #63: QtWidgets`QWidget::~QWidget(this=0x00007fe358462750) at qwidget.cpp:1694 [opt] frame #64: libKDevPlatformSublime.52.dylib`Sublime::IdealDockWidget::~IdealDockWidget() [inlined] Sublime::IdealDockWidget::~IdealDockWidget(this=0x00007fe358462750) at idealdockwidget.cpp:79 [opt] frame #65: libKDevPlatformSublime.52.dylib`Sublime::IdealDockWidget::~IdealDockWidget() [inlined] Sublime::IdealDockWidget::~IdealDockWidget(this=0x00007fe358462750) at idealdockwidget.cpp:78 [opt] frame #66: libKDevPlatformSublime.52.dylib`Sublime::IdealDockWidget::~IdealDockWidget(this=0x00007fe358462750) at idealdockwidget.cpp:78 [opt] frame #67: QtCore`QObjectPrivate::deleteChildren(this=0x00007fe3526997d0) at qobject.cpp:1975 [opt] frame #68: QtWidgets`QWidget::~QWidget(this=0x00007fe352696d90) at qwidget.cpp:1694 [opt] frame #69: libKDevPlatformSublime.52.dylib`Sublime::MainWindow::~MainWindow(this=0x00007fe352696d90, vtt=<unavailable>) at mainwindow.cpp:74 [opt] frame #70: libKDevPlatformShell.52.dylib`KDevelop::MainWindow::~MainWindow(this=0x00007fe352696d90, vtt=<unavailable>) at mainwindow.cpp:164 [opt] frame #71: libKDevPlatformShell.52.dylib`KDevelop::MainWindow::~MainWindow() [inlined] KDevelop::MainWindow::~MainWindow(this=0x00007fe352696d90) at mainwindow.cpp:157 [opt] frame #72: libKDevPlatformShell.52.dylib`KDevelop::MainWindow::~MainWindow(this=0x00007fe352696d90) at mainwindow.cpp:157 [opt] frame #73: QtCore`QObject::event(QEvent*) [inlined] qDeleteInEventHandler(o=0x00007fe352696d90) at qobject.cpp:4557 [opt] frame #74: QtCore`QObject::event(this=0x00007fe352696d90, e=<unavailable>) at qobject.cpp:1254 [opt] frame #75: QtWidgets`QWidget::event(this=0x00007fe352696d90, event=0x00007fe3586e31c0) at qwidget.cpp:9220 [opt] frame #76: QtWidgets`QMainWindow::event(this=0x00007fe352696d90, event=0x00007fe3586e31c0) at qmainwindow.cpp:1557 [opt] frame #77: libKF5XmlGui.5.dylib`KMainWindow::event(this=0x00007fe352696d90, ev=0x00007fe3586e31c0) at kmainwindow.cpp:865 [opt] frame #78: libKF5XmlGui.5.dylib`KXmlGuiWindow::event(this=0x00007fe352696d90, ev=0x00007fe3586e31c0) at kxmlguiwindow.cpp:119 [opt] frame #79: QtWidgets`QApplicationPrivate::notify_helper(this=<unavailable>, receiver=0x00007fe352696d90, e=0x00007fe3586e31c0) at qapplication.cpp:3745 [opt] frame #80: QtWidgets`QApplication::notify(this=<unavailable>, receiver=<unavailable>, e=<unavailable>) at qapplication.cpp:3708 [opt] frame #81: QtCore`QCoreApplication::notifyInternal2(receiver=0x00007fe352696d90, event=0x00007fe3586e31c0) at qcoreapplication.cpp:995 [opt] frame #82: QtCore`QCoreApplicationPrivate::sendPostedEvents(receiver=0x0000000000000000, event_type=0, data=0x00007fe352515d40) at qcoreapplication.h:231 [opt] frame #83: QtCore`QCoreApplication::exec() at qcoreapplication.cpp:1289 [opt] frame #84: kdevelop.bin`main(argc=<unavailable>, argv=0x00007fff5de39c10) at main.cpp:919 [opt] frame #85: 0x00007fff906e25fd libdyld.dylib`start + 1 -- You are receiving this mail because: You are watching all bug changes.