Crash when deleting WebView in some circumstances

Bug #1506897 reported by Chris Coulson
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Oxide
Fix Released
Critical
Chris Coulson

Bug Description

I guess this was introduced by http://bazaar.launchpad.net/~oxide-developers/oxide/oxide.trunk/revision/1210

#0 0x00007ffff58c0267 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55
#1 0x00007ffff58c1eca in __GI_abort () at abort.c:89
#2 0x00007ffff61d406d in __gnu_cxx::__verbose_terminate_handler() () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x00007ffff61d1ee6 in () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x00007ffff61d1f31 in () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5 0x00007ffff61d2a7f in () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007fffb8d35c40 in oxide::qt::WebView::FrameDeleted(oxide::WebFrame*) (this=0x5555564e0fd0, frame=0x5555589886d0)
    at ../../../../qt/core/browser/oxide_qt_web_view.cc:1091
#7 0x00007fffb8de5803 in oxide::WebFrameTree::WebFrameRemoved(oxide::WebFrame*) (this=0x555558988650, frame=0x5555589886d0)
    at ../../../../shared/browser/oxide_web_frame_tree.cc:36
#8 0x00007fffb8dde7c0 in oxide::WebFrame::~WebFrame() (this=0x5555589886d0, __in_chrg=<optimised out>) at ../../../../shared/browser/oxide_web_frame.cc:102
#9 0x00007fffb8dde942 in oxide::WebFrame::~WebFrame() (this=0x5555589886d0, __in_chrg=<optimised out>) at ../../../../shared/browser/oxide_web_frame.cc:120
#10 0x00007fffb8ce8e9a in base::DefaultDeleter<oxide::MessagePump>::operator()(oxide::MessagePump*) const (this=0x5555589886b8, ptr=0x5555589886d0)
    at ../../../../third_party/chromium/src/base/memory/scoped_ptr.h:128
#11 0x00007fffb8de77c3 in base::internal::scoped_ptr_impl<oxide::WebFrame, base::DefaultDeleter<oxide::WebFrame> >::reset(oxide::WebFrame*) (this=0x5555589886b8, p=0x0)
    at ../../../../third_party/chromium/src/base/memory/scoped_ptr.h:238
#12 0x00007fffb8de6a3f in scoped_ptr<oxide::WebFrame, base::DefaultDeleter<oxide::WebFrame> >::reset(oxide::WebFrame*) (this=0x5555589886b8, p=0x0)
    at ../../../../third_party/chromium/src/base/memory/scoped_ptr.h:366
#13 0x00007fffb8de5f3e in oxide::WebFrameTree::FrameDeleted(content::RenderFrameHost*) (this=0x555558988650, render_frame_host=0x555558971920)
    at ../../../../shared/browser/oxide_web_frame_tree.cc:102
#14 0x00007fffb998b249 in content::WebContentsImpl::~WebContentsImpl() (this=0x55555896a1f0, __in_chrg=<optimised out>)
    at ../../../../third_party/chromium/src/content/browser/web_contents/web_contents_impl.cc:489
#15 0x00007fffb998b94e in content::WebContentsImpl::~WebContentsImpl() (this=0x55555896a1f0, __in_chrg=<optimised out>)
    at ../../../../third_party/chromium/src/content/browser/web_contents/web_contents_impl.cc:514
#16 0x00007fffb8ce8e9a in base::DefaultDeleter<oxide::MessagePump>::operator()(oxide::MessagePump*) const (this=0x7fffffffcc60, ptr=0x55555896a1f0)
    at ../../../../third_party/chromium/src/base/memory/scoped_ptr.h:128
#17 0x00007fffb8ce8b2c in base::internal::scoped_ptr_impl<oxide::MessagePump, base::DefaultDeleter<oxide::MessagePump> >::~scoped_ptr_impl() (this=0x7fffffffcc60, __in_chrg=<optimised out>) at ../../../../third_party/chromium/src/base/memory/scoped_ptr.h:222
#18 0x00007fffb8d39bfa in scoped_ptr<content::WebContents, base::DefaultDeleter<content::WebContents> >::~scoped_ptr() (this=0x7fffffffcc60, __in_chrg=<optimised out>)
    at ../../../../third_party/chromium/src/base/memory/scoped_ptr.h:301
#19 0x00007fffb8df1e87 in oxide::WebView::WebContentsDeleter::operator()(content::WebContents*) (this=0x555558968b88, contents=0x55555896a1f0)
    at ../../../../shared/browser/oxide_web_view.cc:186
#20 0x00007fffb8dfba98 in base::internal::scoped_ptr_impl<content::WebContents, oxide::WebView::WebContentsDeleter>::~scoped_ptr_impl() (this=0x555558968b88, __in_chrg=<optimised out>) at ../../../../third_party/chromium/src/base/memory/scoped_ptr.h:222
#21 0x00007fffb8dfa59a in scoped_ptr<content::WebContents, oxide::WebView::WebContentsDeleter>::~scoped_ptr() (this=0x555558968b88, __in_chrg=<optimised out>)
    at ../../../../third_party/chromium/src/base/memory/scoped_ptr.h:301
#22 0x00007fffb8df73bb in oxide::WebView::~WebView() (this=0x555558968ac0, __in_chrg=<optimised out>) at ../../../../shared/browser/oxide_web_view.cc:1140
#23 0x00007fffb8df74c6 in oxide::WebView::~WebView() (this=0x555558968ac0, __in_chrg=<optimised out>) at ../../../../shared/browser/oxide_web_view.cc:1156
#24 0x00007fffb8ce8e9a in base::DefaultDeleter<oxide::MessagePump>::operator()(oxide::MessagePump*) const (this=0x5555564e1010, ptr=0x555558968ac0)
    at ../../../../third_party/chromium/src/base/memory/scoped_ptr.h:128
#25 0x00007fffb8ce8b2c in base::internal::scoped_ptr_impl<oxide::MessagePump, base::DefaultDeleter<oxide::MessagePump> >::~scoped_ptr_impl() (this=0x5555564e1010, __in_chrg=<optimised out>) at ../../../../third_party/chromium/src/base/memory/scoped_ptr.h:222
#26 0x00007fffb8d39a60 in scoped_ptr<oxide::WebView, base::DefaultDeleter<oxide::WebView> >::~scoped_ptr() (this=0x5555564e1010, __in_chrg=<optimised out>)
    at ../../../../third_party/chromium/src/base/memory/scoped_ptr.h:301
#27 0x00007fffb8d38939 in oxide::qt::WebView::~WebView() (this=0x5555564e0fd0, __in_chrg=<optimised out>) at ../../../../qt/core/browser/oxide_qt_web_view.cc:1660
#28 0x00007fffb8d389d8 in oxide::qt::WebView::~WebView() (this=0x5555564e0fd0, __in_chrg=<optimised out>) at ../../../../qt/core/browser/oxide_qt_web_view.cc:1668
#29 0x00007fffd8088bea in QScopedPointerDeleter<oxide::qt::WebViewProxy>::cleanup(oxide::qt::WebViewProxy*) (pointer=0x5555564e1000)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qscopedpointer.h:54
#30 0x00007fffd80886bb in QScopedPointer<oxide::qt::WebViewProxy, QScopedPointerDeleter<oxide::qt::WebViewProxy> >::~QScopedPointer() (this=0x5555581d3cd8, __in_chrg=<optimised out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qscopedpointer.h:101
#31 0x00007fffd8087ad8 in oxide::qt::ProxyHandle<oxide::qt::WebViewProxy>::~ProxyHandle() (this=0x5555581d3cd0, __in_chrg=<optimised out>)
    at /home/chr1s/src/oxide/refactor-webview-rwhv-interaction/qt/core/glue/oxide_qt_proxy_handle.h:35
#32 0x00007fffd807fdde in OxideQQuickWebViewPrivate::~OxideQQuickWebViewPrivate() (this=0x5555581d3cd0, __in_chrg=<optimised out>)
    at /home/chr1s/src/oxide/refactor-webview-rwhv-interaction/qt/quick/api/oxideqquickwebview.cc:902
#33 0x00007fffd807fe16 in OxideQQuickWebViewPrivate::~OxideQQuickWebViewPrivate() (this=0x5555581d3cd0, __in_chrg=<optimised out>)
    at /home/chr1s/src/oxide/refactor-webview-rwhv-interaction/qt/quick/api/oxideqquickwebview.cc:902
#34 0x00007fffd80889dc in QScopedPointerDeleter<OxideQQuickWebViewPrivate>::cleanup(OxideQQuickWebViewPrivate*) (pointer=0x5555581d3cd0)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qscopedpointer.h:54
#35 0x00007fffd8088149 in QScopedPointer<OxideQQuickWebViewPrivate, QScopedPointerDeleter<OxideQQuickWebViewPrivate> >::~QScopedPointer() (this=0x5555581d3b70, __in_chrg=<optimised out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qscopedpointer.h:101
#36 0x00007fffd8081c71 in OxideQQuickWebView::~OxideQQuickWebView() (this=0x5555581d3b50, __in_chrg=<optimised out>)
    at /home/chr1s/src/oxide/refactor-webview-rwhv-interaction/qt/quick/api/oxideqquickwebview.cc:1385
#37 0x00007fffd811fd0e in QQmlPrivate::QQmlElement<OxideQQuickWebView>::~QQmlElement() (this=0x5555581d3b50, __in_chrg=<optimised out>)
    at /usr/include/x86_64-linux-gnu/qt5/QtQml/qqmlprivate.h:98
#38 0x00007fffd811fd46 in QQmlPrivate::QQmlElement<OxideQQuickWebView>::~QQmlElement() (this=0x5555581d3b50, __in_chrg=<optimised out>)
    at /usr/include/x86_64-linux-gnu/qt5/QtQml/qqmlprivate.h:98
#39 0x00007ffff7ba718c in QObjectPrivate::deleteChildren() (this=this@entry=0x5555580e7b90) at kernel/qobject.cpp:1950
#40 0x00007ffff7bb17f3 in QObject::~QObject() (this=<optimised out>, __in_chrg=<optimised out>) at kernel/qobject.cpp:1030
#41 0x00007ffff720b866 in QQuickItem::~QQuickItem() (this=0x5555580e8590, __in_chrg=<optimised out>) at items/qquickitem.cpp:2225
#42 0x00007ffff7225206 in QQmlPrivate::QQmlElement<QQuickFocusScope>::~QQmlElement() (this=0x5555580e8590, __in_chrg=<optimised out>)
    at ../../include/QtQml/../../src/qml/qml/qqmlprivate.h:98
#43 0x00007ffff7225206 in QQmlPrivate::QQmlElement<QQuickFocusScope>::~QQmlElement() (this=0x5555580e8590, __in_chrg=<optimised out>)
    at ../../include/QtQml/../../src/qml/qml/qqmlprivate.h:98
#44 0x00007ffff7ba718c in QObjectPrivate::deleteChildren() (this=this@entry=0x5555580da380) at kernel/qobject.cpp:1950
#45 0x00007ffff7bb17f3 in QObject::~QObject() (this=<optimised out>, __in_chrg=<optimised out>) at kernel/qobject.cpp:1030
#46 0x00007ffff720b866 in QQuickItem::~QQuickItem() (this=0x555556547c10, __in_chrg=<optimised out>) at items/qquickitem.cpp:2225
#47 0x00007ffff7225206 in QQmlPrivate::QQmlElement<QQuickFocusScope>::~QQmlElement() (this=0x555556547c10, __in_chrg=<optimised out>)
    at ../../include/QtQml/../../src/qml/qml/qqmlprivate.h:98
#48 0x00007ffff7225206 in QQmlPrivate::QQmlElement<QQuickFocusScope>::~QQmlElement() (this=0x555556547c10, __in_chrg=<optimised out>)
    at ../../include/QtQml/../../src/qml/qml/qqmlprivate.h:98
#49 0x00007ffff7ba718c in QObjectPrivate::deleteChildren() (this=this@entry=0x5555564731d0) at kernel/qobject.cpp:1950
#50 0x00007ffff7bb17f3 in QObject::~QObject() (this=<optimised out>, __in_chrg=<optimised out>) at kernel/qobject.cpp:1030
#51 0x00007ffff720b866 in QQuickItem::~QQuickItem() (this=0x55555646fd10, __in_chrg=<optimised out>) at items/qquickitem.cpp:2225
#52 0x00007ffff7225206 in QQmlPrivate::QQmlElement<QQuickFocusScope>::~QQmlElement() (this=0x55555646fd10, __in_chrg=<optimised out>)
    at ../../include/QtQml/../../src/qml/qml/qqmlprivate.h:98
#53 0x00007ffff7225206 in QQmlPrivate::QQmlElement<QQuickFocusScope>::~QQmlElement() (this=0x55555646fd10, __in_chrg=<optimised out>)
    at ../../include/QtQml/../../src/qml/qml/qqmlprivate.h:98
#54 0x00007ffff7ba718c in QObjectPrivate::deleteChildren() (this=this@entry=0x55555644f6d0) at kernel/qobject.cpp:1950
#55 0x00007ffff7bb17f3 in QObject::~QObject() (this=<optimised out>, __in_chrg=<optimised out>) at kernel/qobject.cpp:1030
#56 0x00007ffff720b866 in QQuickItem::~QQuickItem() (this=0x55555644e1e0, __in_chrg=<optimised out>) at items/qquickitem.cpp:2225
#57 0x00007ffff72257c6 in QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement() (this=0x55555644e1e0, __in_chrg=<optimised out>)
    at ../../include/QtQml/../../src/qml/qml/qqmlprivate.h:98
#58 0x00007ffff72257c6 in QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement() (this=0x55555644e1e0, __in_chrg=<optimised out>)
    at ../../include/QtQml/../../src/qml/qml/qqmlprivate.h:98
#59 0x00007ffff7ba718c in QObjectPrivate::deleteChildren() (this=this@entry=0x55555640da00) at kernel/qobject.cpp:1950
#60 0x00007ffff7bb17f3 in QObject::~QObject() (this=<optimised out>, __in_chrg=<optimised out>) at kernel/qobject.cpp:1030
#61 0x00007ffff720b866 in QQuickItem::~QQuickItem() (this=0x55555640d9d0, __in_chrg=<optimised out>) at items/qquickitem.cpp:2225
#62 0x00007ffff72257c6 in QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement() (this=0x55555640d9d0, __in_chrg=<optimised out>)
    at ../../include/QtQml/../../src/qml/qml/qqmlprivate.h:98
#63 0x00007ffff72257c6 in QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement() (this=0x55555640d9d0, __in_chrg=<optimised out>)
    at ../../include/QtQml/../../src/qml/qml/qqmlprivate.h:98
#64 0x00007ffff7ba718c in QObjectPrivate::deleteChildren() (this=this@entry=0x5555563e9890) at kernel/qobject.cpp:1950
#65 0x00007ffff7bb17f3 in QObject::~QObject() (this=<optimised out>, __in_chrg=<optimised out>) at kernel/qobject.cpp:1030
#66 0x00007ffff7217409 in QQuickWindow::~QQuickWindow() (this=0x5555563e7300, __in_chrg=<optimised out>) at items/qquickwindow.cpp:1100
#67 0x00007ffff72f9be3 in QQmlPrivate::QQmlElement<QQuickWindowQmlImpl>::~QQmlElement() (this=0x5555563e7300, __in_chrg=<optimised out>) at items/qquickwindowmodule.cpp:48
#68 0x00007ffff72f9be3 in QQmlPrivate::QQmlElement<QQuickWindowQmlImpl>::~QQmlElement() (this=0x5555563e7300, __in_chrg=<optimised out>)
    at ../../include/QtQml/../../src/qml/qml/qqmlprivate.h:98
#69 0x00007ffff72f9be3 in QQmlPrivate::QQmlElement<QQuickWindowQmlImpl>::~QQmlElement() (this=0x5555563e7300, __in_chrg=<optimised out>)
    at ../../include/QtQml/../../src/qml/qml/qqmlprivate.h:98
#70 0x00005555555908f1 in BrowserApplication::~BrowserApplication() ()
#71 0x00005555555864db in main ()

Changed in oxide:
status: New → Triaged
importance: Undecided → Critical
assignee: nobody → Chris Coulson (chrisccoulson)
milestone: none → branch-1.11
Revision history for this message
Chris Coulson (chrisccoulson) wrote :

For some reason, this requires a debug build to crash

Changed in oxide:
status: Triaged → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.