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.

Reply via email to