Public bug reported:

I can reliably reproduce this crash with oxide 1.11.3 on my x86-64
laptop, by launching webbrowser-app, then plugging in an external
monitor (my monitor config then blanks the laptop screen and all windows
are moved to the external monitor). Here is the complete stack trace:

#0  QScreen::depth (this=this@entry=0x0) at kernel/qscreen.cpp:108
#1  0x00007f52181ac408 in oxide::qt::GetWebScreenInfoFromQScreen (screen=0x0) 
at ../../../../qt/core/browser/oxide_qt_screen_utils.cc:102
#2  0x00007f52181bc490 in oxide::qt::WebView::GetScreenInfo (this=<optimized 
out>) at ../../../../qt/core/browser/oxide_qt_web_view.cc:533
#3  0x00007f52181f48c1 in oxide::WebView::GetScreenInfo (this=<optimized out>) 
at ../../../../shared/browser/oxide_web_view.cc:1798
#4  0x00007f52181e658d in oxide::RenderWidgetHostView::GetScreenInfo 
(this=<optimized out>, result=0x55a754c15590)
    at ../../../../shared/browser/oxide_render_widget_host_view.cc:363
#5  0x00007f52184da186 in content::RenderWidgetHostImpl::GetWebScreenInfo 
(this=0x55a758384f88, result=0x55a754c15590)
    at 
../../../../third_party/chromium/src/content/browser/renderer_host/render_widget_host_impl.cc:1224
#6  0x00007f52184db125 in content::RenderWidgetHostImpl::GetResizeParams 
(this=this@entry=0x55a758384f88, 
    resize_params=resize_params@entry=0x55a754c15590)
    at 
../../../../third_party/chromium/src/content/browser/renderer_host/render_widget_host_impl.cc:581
#7  0x00007f52184db6c4 in content::RenderWidgetHostImpl::WasResized 
(this=0x55a758384f88)
    at 
../../../../third_party/chromium/src/content/browser/renderer_host/render_widget_host_impl.cc:644
#8  0x00007f52288dde2a in OxideQQuickWebViewPrivate::screenChanged(QScreen*) () 
from /usr/lib/x86_64-linux-gnu/libOxideQtQuick.so.0
#9  0x00007f52288e2c25 in OxideQQuickWebView::qt_static_metacall(QObject*, 
QMetaObject::Call, int, void**) ()
   from /usr/lib/x86_64-linux-gnu/libOxideQtQuick.so.0
#10 0x00007f5253ede78a in QMetaObject::activate 
(sender=sender@entry=0x55a755270fc0, signalOffset=<optimized out>, 
    local_signal_index=local_signal_index@entry=0, 
argv=argv@entry=0x7ffe51c8f640) at kernel/qobject.cpp:3717
#11 0x00007f5253edef87 in QMetaObject::activate 
(sender=sender@entry=0x55a755270fc0, m=m@entry=0x7f525460e580 
<QWindow::staticMetaObject>, 
    local_signal_index=local_signal_index@entry=0, 
argv=argv@entry=0x7ffe51c8f640) at kernel/qobject.cpp:3582
#12 0x00007f52541d3dbf in QWindow::screenChanged 
(this=this@entry=0x55a755270fc0, _t1=_t1@entry=0x0) at .moc/moc_qwindow.cpp:626
#13 0x00007f52541d4cb5 in QWindowPrivate::emitScreenChangedRecursion 
(this=this@entry=0x55a755274e70, newScreen=newScreen@entry=0x0)
    at kernel/qwindow.cpp:366
#14 0x00007f52541d7cf3 in QWindowPrivate::setTopLevelScreen 
(this=0x55a755274e70, newScreen=0x0, recreate=<optimized out>)
    at kernel/qwindow.cpp:387
#15 0x00007f52541d7e85 in QWindow::screenDestroyed (this=0x55a755270fc0, 
object=<optimized out>) at kernel/qwindow.cpp:1720
#16 0x00007f5253ede617 in QtPrivate::QSlotObjectBase::call (a=0x7ffe51c8f890, 
r=0x55a755270fc0, this=<optimized out>)
    at ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:124
#17 QMetaObject::activate (sender=sender@entry=0x55a754c15f20, 
signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, 
    argv=argv@entry=0x7ffe51c8f890) at kernel/qobject.cpp:3702
#18 0x00007f5253edef87 in QMetaObject::activate 
(sender=sender@entry=0x55a754c15f20, m=m@entry=0x7f52540db0e0 
<QObject::staticMetaObject>, 
    local_signal_index=local_signal_index@entry=0, 
argv=argv@entry=0x7ffe51c8f890) at kernel/qobject.cpp:3582
#19 0x00007f5253edf02f in QObject::destroyed (this=this@entry=0x55a754c15f20, 
_t1=_t1@entry=0x55a754c15f20) at .moc/moc_qobject.cpp:206
#20 0x00007f5253ee619a in QObject::~QObject (this=0x55a754c15f20, 
__in_chrg=<optimized out>) at kernel/qobject.cpp:903
#21 0x00007f52541f60c9 in QScreen::~QScreen (this=0x55a754c15f20, 
__in_chrg=<optimized out>) at kernel/qscreen.cpp:77
#22 0x00007f52541bdd49 in QPlatformScreen::~QPlatformScreen 
(this=0x55a754c16290, __in_chrg=<optimized out>)
    at kernel/qplatformscreen.cpp:57
#23 0x00007f524c008519 in QXcbScreen::~QXcbScreen (this=0x55a754c16290, 
__in_chrg=<optimized out>) at qxcbscreen.cpp:222
#24 0x00007f524bffb909 in QXcbConnection::updateScreens 
(this=this@entry=0x55a754c07b50) at qxcbconnection.cpp:286
#25 0x00007f524bffc5c6 in QXcbConnection::handleXcbEvent 
(this=this@entry=0x55a754c07b50, event=event@entry=0x7f5244003a60)
    at qxcbconnection.cpp:961
#26 0x00007f524bffd3b3 in QXcbConnection::processXcbEvents 
(this=0x55a754c07b50) at qxcbconnection.cpp:1303
#27 0x00007f5253edf651 in QObject::event (this=0x55a754c07b50, e=<optimized 
out>) at kernel/qobject.cpp:1245
#28 0x00007f5254f60b8c in QApplicationPrivate::notify_helper 
(this=this@entry=0x55a754bf8ce0, receiver=receiver@entry=0x55a754c07b50, 
    e=e@entry=0x7f5244003c70) at kernel/qapplication.cpp:3720
#29 0x00007f5254f66230 in QApplication::notify (this=0x7ffe51c90300, 
receiver=0x55a754c07b50, e=0x7f5244003c70)
    at kernel/qapplication.cpp:3503
#30 0x00007f5253eadf1b in QCoreApplication::notifyInternal 
(this=0x7ffe51c90300, receiver=0x55a754c07b50, event=event@entry=0x7f5244003c70)
    at kernel/qcoreapplication.cpp:935
#31 0x00007f5253eb0057 in QCoreApplication::sendEvent (event=0x7f5244003c70, 
receiver=<optimized out>)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:228
#32 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, 
event_type=event_type@entry=0, data=0x55a754bf8e50)
    at kernel/qcoreapplication.cpp:1552
#33 0x00007f5253eb0588 in QCoreApplication::sendPostedEvents 
(receiver=receiver@entry=0x0, event_type=event_type@entry=0)
    at kernel/qcoreapplication.cpp:1410
#34 0x00007f5253f04e73 in postEventSourceDispatch (s=0x55a754d0ed50) at 
kernel/qeventdispatcher_glib.cpp:271
#35 0x00007f525288aff7 in g_main_context_dispatch () from 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#36 0x00007f525288b250 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#37 0x00007f525288b2fc in g_main_context_iteration () from 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#38 0x00007f5253f0529b in QEventDispatcherGlib::processEvents 
(this=0x55a754cf1700, flags=...) at kernel/qeventdispatcher_glib.cpp:420
#39 0x00007f5253eab75a in QEventLoop::exec (this=this@entry=0x7ffe51c90250, 
flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#40 0x00007f5253eb32cc in QCoreApplication::exec () at 
kernel/qcoreapplication.cpp:1188
#41 0x000055a7545ecd16 in BrowserApplication::run() ()
#42 0x000055a7545e15d5 in main ()

oxide::qt::GetWebScreenInfoFromQScreen() is calling QScreen::depth() on
a null pointer.

** Affects: oxide
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
WebApps bug tracking, which is subscribed to Oxide.
https://bugs.launchpad.net/bugs/1524984

Title:
  Crash in oxide::qt::GetWebScreenInfoFromQScreen()

Status in Oxide:
  New

Bug description:
  I can reliably reproduce this crash with oxide 1.11.3 on my x86-64
  laptop, by launching webbrowser-app, then plugging in an external
  monitor (my monitor config then blanks the laptop screen and all
  windows are moved to the external monitor). Here is the complete stack
  trace:

  #0  QScreen::depth (this=this@entry=0x0) at kernel/qscreen.cpp:108
  #1  0x00007f52181ac408 in oxide::qt::GetWebScreenInfoFromQScreen (screen=0x0) 
at ../../../../qt/core/browser/oxide_qt_screen_utils.cc:102
  #2  0x00007f52181bc490 in oxide::qt::WebView::GetScreenInfo (this=<optimized 
out>) at ../../../../qt/core/browser/oxide_qt_web_view.cc:533
  #3  0x00007f52181f48c1 in oxide::WebView::GetScreenInfo (this=<optimized 
out>) at ../../../../shared/browser/oxide_web_view.cc:1798
  #4  0x00007f52181e658d in oxide::RenderWidgetHostView::GetScreenInfo 
(this=<optimized out>, result=0x55a754c15590)
      at ../../../../shared/browser/oxide_render_widget_host_view.cc:363
  #5  0x00007f52184da186 in content::RenderWidgetHostImpl::GetWebScreenInfo 
(this=0x55a758384f88, result=0x55a754c15590)
      at 
../../../../third_party/chromium/src/content/browser/renderer_host/render_widget_host_impl.cc:1224
  #6  0x00007f52184db125 in content::RenderWidgetHostImpl::GetResizeParams 
(this=this@entry=0x55a758384f88, 
      resize_params=resize_params@entry=0x55a754c15590)
      at 
../../../../third_party/chromium/src/content/browser/renderer_host/render_widget_host_impl.cc:581
  #7  0x00007f52184db6c4 in content::RenderWidgetHostImpl::WasResized 
(this=0x55a758384f88)
      at 
../../../../third_party/chromium/src/content/browser/renderer_host/render_widget_host_impl.cc:644
  #8  0x00007f52288dde2a in OxideQQuickWebViewPrivate::screenChanged(QScreen*) 
() from /usr/lib/x86_64-linux-gnu/libOxideQtQuick.so.0
  #9  0x00007f52288e2c25 in OxideQQuickWebView::qt_static_metacall(QObject*, 
QMetaObject::Call, int, void**) ()
     from /usr/lib/x86_64-linux-gnu/libOxideQtQuick.so.0
  #10 0x00007f5253ede78a in QMetaObject::activate 
(sender=sender@entry=0x55a755270fc0, signalOffset=<optimized out>, 
      local_signal_index=local_signal_index@entry=0, 
argv=argv@entry=0x7ffe51c8f640) at kernel/qobject.cpp:3717
  #11 0x00007f5253edef87 in QMetaObject::activate 
(sender=sender@entry=0x55a755270fc0, m=m@entry=0x7f525460e580 
<QWindow::staticMetaObject>, 
      local_signal_index=local_signal_index@entry=0, 
argv=argv@entry=0x7ffe51c8f640) at kernel/qobject.cpp:3582
  #12 0x00007f52541d3dbf in QWindow::screenChanged 
(this=this@entry=0x55a755270fc0, _t1=_t1@entry=0x0) at .moc/moc_qwindow.cpp:626
  #13 0x00007f52541d4cb5 in QWindowPrivate::emitScreenChangedRecursion 
(this=this@entry=0x55a755274e70, newScreen=newScreen@entry=0x0)
      at kernel/qwindow.cpp:366
  #14 0x00007f52541d7cf3 in QWindowPrivate::setTopLevelScreen 
(this=0x55a755274e70, newScreen=0x0, recreate=<optimized out>)
      at kernel/qwindow.cpp:387
  #15 0x00007f52541d7e85 in QWindow::screenDestroyed (this=0x55a755270fc0, 
object=<optimized out>) at kernel/qwindow.cpp:1720
  #16 0x00007f5253ede617 in QtPrivate::QSlotObjectBase::call (a=0x7ffe51c8f890, 
r=0x55a755270fc0, this=<optimized out>)
      at ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:124
  #17 QMetaObject::activate (sender=sender@entry=0x55a754c15f20, 
signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, 
      argv=argv@entry=0x7ffe51c8f890) at kernel/qobject.cpp:3702
  #18 0x00007f5253edef87 in QMetaObject::activate 
(sender=sender@entry=0x55a754c15f20, m=m@entry=0x7f52540db0e0 
<QObject::staticMetaObject>, 
      local_signal_index=local_signal_index@entry=0, 
argv=argv@entry=0x7ffe51c8f890) at kernel/qobject.cpp:3582
  #19 0x00007f5253edf02f in QObject::destroyed (this=this@entry=0x55a754c15f20, 
_t1=_t1@entry=0x55a754c15f20) at .moc/moc_qobject.cpp:206
  #20 0x00007f5253ee619a in QObject::~QObject (this=0x55a754c15f20, 
__in_chrg=<optimized out>) at kernel/qobject.cpp:903
  #21 0x00007f52541f60c9 in QScreen::~QScreen (this=0x55a754c15f20, 
__in_chrg=<optimized out>) at kernel/qscreen.cpp:77
  #22 0x00007f52541bdd49 in QPlatformScreen::~QPlatformScreen 
(this=0x55a754c16290, __in_chrg=<optimized out>)
      at kernel/qplatformscreen.cpp:57
  #23 0x00007f524c008519 in QXcbScreen::~QXcbScreen (this=0x55a754c16290, 
__in_chrg=<optimized out>) at qxcbscreen.cpp:222
  #24 0x00007f524bffb909 in QXcbConnection::updateScreens 
(this=this@entry=0x55a754c07b50) at qxcbconnection.cpp:286
  #25 0x00007f524bffc5c6 in QXcbConnection::handleXcbEvent 
(this=this@entry=0x55a754c07b50, event=event@entry=0x7f5244003a60)
      at qxcbconnection.cpp:961
  #26 0x00007f524bffd3b3 in QXcbConnection::processXcbEvents 
(this=0x55a754c07b50) at qxcbconnection.cpp:1303
  #27 0x00007f5253edf651 in QObject::event (this=0x55a754c07b50, e=<optimized 
out>) at kernel/qobject.cpp:1245
  #28 0x00007f5254f60b8c in QApplicationPrivate::notify_helper 
(this=this@entry=0x55a754bf8ce0, receiver=receiver@entry=0x55a754c07b50, 
      e=e@entry=0x7f5244003c70) at kernel/qapplication.cpp:3720
  #29 0x00007f5254f66230 in QApplication::notify (this=0x7ffe51c90300, 
receiver=0x55a754c07b50, e=0x7f5244003c70)
      at kernel/qapplication.cpp:3503
  #30 0x00007f5253eadf1b in QCoreApplication::notifyInternal 
(this=0x7ffe51c90300, receiver=0x55a754c07b50, event=event@entry=0x7f5244003c70)
      at kernel/qcoreapplication.cpp:935
  #31 0x00007f5253eb0057 in QCoreApplication::sendEvent (event=0x7f5244003c70, 
receiver=<optimized out>)
      at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:228
  #32 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, 
event_type=event_type@entry=0, data=0x55a754bf8e50)
      at kernel/qcoreapplication.cpp:1552
  #33 0x00007f5253eb0588 in QCoreApplication::sendPostedEvents 
(receiver=receiver@entry=0x0, event_type=event_type@entry=0)
      at kernel/qcoreapplication.cpp:1410
  #34 0x00007f5253f04e73 in postEventSourceDispatch (s=0x55a754d0ed50) at 
kernel/qeventdispatcher_glib.cpp:271
  #35 0x00007f525288aff7 in g_main_context_dispatch () from 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
  #36 0x00007f525288b250 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
  #37 0x00007f525288b2fc in g_main_context_iteration () from 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
  #38 0x00007f5253f0529b in QEventDispatcherGlib::processEvents 
(this=0x55a754cf1700, flags=...) at kernel/qeventdispatcher_glib.cpp:420
  #39 0x00007f5253eab75a in QEventLoop::exec (this=this@entry=0x7ffe51c90250, 
flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
  #40 0x00007f5253eb32cc in QCoreApplication::exec () at 
kernel/qcoreapplication.cpp:1188
  #41 0x000055a7545ecd16 in BrowserApplication::run() ()
  #42 0x000055a7545e15d5 in main ()

  oxide::qt::GetWebScreenInfoFromQScreen() is calling QScreen::depth()
  on a null pointer.

To manage notifications about this bug go to:
https://bugs.launchpad.net/oxide/+bug/1524984/+subscriptions

-- 
Mailing list: https://launchpad.net/~ubuntu-webapps-bugs
Post to     : ubuntu-webapps-bugs@lists.launchpad.net
Unsubscribe : https://launchpad.net/~ubuntu-webapps-bugs
More help   : https://help.launchpad.net/ListHelp

Reply via email to