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

QtWebEngine crashes when screen is removed

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P1: Critical
    • None
    • 6.9.0
    • WebEngine
    • None
    • Operating System: Fedora Linux 42
      KDE Plasma Version: 6.3.4
      KDE Frameworks Version: 6.13.0
      Qt Version: 6.9.0
      Kernel Version: 6.14.3-300.fc42.x86_64 (64-bit)
      Graphics Platform: Wayland
    • Linux/Wayland
    • 4285358b4 (dev)

    Description

      I noticed that zapzap (PyQt6 WebEngine based application) kept crashing when I removed my laptop from a Dell thunderbolt dock and the stack trace seems to suggest the problem is either with Qt or KDE Plasma. I suspect the former hence why I am reporting here but I don't know enough about Qt to be sure.

       Steps to reproduce

      1. Have a multi-monitor setup.
      2. Open zapzap on a screen.
      3. Disconnect the screen that zapzap is on (I have been disconnecting a Dell WD22TB4 dock which has 2 screens connected to it).

      Observed result

      zapzap crashes with the following error message (when launched from a terminal):

      qt.qpa.wayland: There are no outputs - creating placeholder screen
      [9268:7:0100/000000.043097:ERROR:broker_posix.cc(41)] Recvmsg error: Connection reset by peer (104)
      [1]    9155 trace trap (core dumped)  zapzap 

      Expected result

      zapzap continues to run. The desktop environment moves the window to a remaining screen (this is not happening because of this KDE Plasma issue).

      Further details

      I printed the stack trace from the coredump:

      #0  0x00007f80d8904621 in base::ImmediateCrash () at ../../../../../src/3rdparty/chromium/base/immediate_crash.h:176
      #1  logging::CheckFailure () at ../../../../../src/3rdparty/chromium/base/check.h:213
      #2  display::ScreenInfos::current () at ./../../../../../src/3rdparty/chromium/ui/display/screen_infos.cc:38
      #3  display::ScreenInfos::mutable_current () at ./../../../../../src/3rdparty/chromium/ui/display/screen_infos.cc:29
      #4  0x00007f80d29cde36 in QtWebEngineCore::RenderWidgetHostViewQt::updateScreenInfo ()
          at /usr/src/debug/qt6-qtwebengine-6.9.0-1.fc42.x86_64/src/core/render_widget_host_view_qt.cpp:881
      #5  0x00007f80d29d2b64 in QtWebEngineCore::RenderWidgetHostViewQtDelegateClient::visualPropertiesChanged ()
          at /usr/src/debug/qt6-qtwebengine-6.9.0-1.fc42.x86_64/src/core/render_widget_host_view_qt_delegate_client.cpp:222
      #6  0x00007f80cef6633f in updatePixelRatioHelper (item=0x55d3a1e27910, pixelRatio=pixelRatio@entry=1.25)
          at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/quick/items/qquickwindow.cpp:387
      #7  0x00007f80cef662d7 in updatePixelRatioHelper (item=<optimized out>, pixelRatio=pixelRatio@entry=1.25)
          at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/quick/items/qquickwindow.cpp:392
      #8  0x00007f80cef662d7 in updatePixelRatioHelper (item=<optimized out>, pixelRatio=1.25)
          at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/quick/items/qquickwindow.cpp:392
      #9  0x00007f80cef6ab28 in QQuickWindow::physicalDpiChanged (this=<optimized out>)
          at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/quick/items/qquickwindow.cpp:403
      #10 0x00007f80cef6fede in QQuickWindow::event (this=0x55d3a1e2db00, event=<optimized out>)
          at /usr/src/debug/qt6-qtdeclarative-6.9.0-2.fc42.x86_64/src/quick/items/qquickwindow.cpp:1614
      #11 0x00007f80de03d7af in QApplicationPrivate::notify_helper (this=this@entry=0x55d3a0073c70, receiver=0x55d3a1e2db00, e=0x7fff52e1a4f0)
          at /usr/src/debug/qt6-qtbase-6.9.0-1.fc42.x86_64/src/widgets/kernel/qapplication.cpp:3301
      #12 0x00007f80de047657 in QApplication::notify
          (this=this@entry=0x55d3a04ce9e0, receiver=receiver@entry=0x55d3a1e2db00, e=e@entry=0x7fff52e1a4f0)
          at /usr/src/debug/qt6-qtbase-6.9.0-1.fc42.x86_64/src/widgets/kernel/qapplication.cpp:3062
      #13 0x00007f80dea66fd6 in sipQApplication::notify (this=0x55d3a04ce9e0, a0=0x55d3a1e2db00, a1=0x7fff52e1a4f0)
          at /usr/src/debug/python-pyqt6-6.9.0-1.fc42.x86_64/build/QtWidgets/sipQtWidgetsQApplication.cpp:249
      #14 0x00007f80e34f5fc8 in QCoreApplication::notifyInternal2 (receiver=0x55d3a1e2db00, event=0x7fff52e1a4f0)
          at /usr/src/debug/qt6-qtbase-6.9.0-1.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1106
      #15 0x00007f80e34f622d in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>)
          at /usr/src/debug/qt6-qtbase-6.9.0-1.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1546
      #16 0x00007f80df5515c6 in QWindowPrivate::updateDevicePixelRatio (this=0x55d3a17e3640)
          at /usr/src/debug/qt6-qtbase-6.9.0-1.fc42.x86_64/src/gui/kernel/qwindow.cpp:1435
      #17 0x00007f80e356033a in QtPrivate::QSlotObjectBase::call (this=0x55d3a1e2db30, r=0x55d3a1e2db00, a=0x7fff52e1a610)
          at /usr/src/debug/qt6-qtbase-6.9.0-1.fc42.x86_64/src/corelib/kernel/qobjectdefs_impl.h:461
      #18 doActivate<false> (sender=0x55d3a1e2db00, signal_index=3, argv=argv@entry=0x7fff52e1a610)
          at /usr/src/debug/qt6-qtbase-6.9.0-1.fc42.x86_64/src/corelib/kernel/qobject.cpp:4138
      #19 0x00007f80e3556d09 in QMetaObject::activate
          (sender=sender@entry=0x55d3a1e2db00, m=m@entry=0x7f80dfdc2200 <QWindow::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff52e1a610) at /usr/src/debug/qt6-qtbase-6.9.0-1.fc42.x86_64/src/corelib/kernel/qobject.cpp:4198
      #20 0x00007f80df54ab57 in QMetaObject::activate<void, QScreen*>
          (sender=0x55d3a1e2db00, mo=0x7f80dfdc2200 <QWindow::staticMetaObject>, local_signal_index=0, ret=0x0)
          at /usr/src/debug/qt6-qtbase-6.9.0-1.fc42.x86_64/src/corelib/kernel/qobjectdefs.h:306
      #21 QWindow::screenChanged (this=this@entry=0x55d3a1e2db00, _t1=<optimized out>, _t1@entry=0x55d3a03ef0e0)
          at /usr/src/debug/qt6-qtbase-6.9.0-1.fc42.x86_64/redhat-linux-build/src/gui/Gui_autogen/include/moc_qwindow.cpp:574
      #22 0x00007f80df54bb38 in QWindowPrivate::emitScreenChangedRecursion (this=<optimized out>, newScreen=0x55d3a03ef0e0)
          at /usr/src/debug/qt6-qtbase-6.9.0-1.fc42.x86_64/src/gui/kernel/qwindow.cpp:508
      #23 0x00007f80df55b7fd in QWindowSystemInterface::handleScreenRemoved (platformScreen=0x55d3a04e0ae0)
          at /usr/src/debug/qt6-qtbase-6.9.0-1.fc42.x86_64/src/gui/kernel/qwindowsysteminterface.cpp:769
      #24 0x00007f80c7a1401d in QtWaylandClient::QWaylandDisplay::registry_global_remove (this=0x55d3a04d2210, id=62)
          at /usr/src/debug/qt6-qtwayland-6.9.0-3.fc42.x86_64/src/client/qwaylanddisplay.cpp:845
      #25 0x00007f80dde63056 in ffi_call_unix64 () at ../src/x86/unix64.S:104
      #26 0x00007f80dde5ed08 in ffi_call_int
          (cif=cif@entry=0x7fff52e1a9c0, fn=fn@entry=0x7f80c7a4a950 <QtWayland::wl_registry::handle_global_remove(void*, wl_registry*, unsigned int)>, rvalue=<optimized out>, rvalue@entry=0x0, avalue=avalue@entry=0x7fff52e1aa90, closure=closure@entry=0x0) at ../src/x86/ffi64.c:673
      #27 0x00007f80dde6170e in ffi_call
          (cif=cif@entry=0x7fff52e1a9c0, fn=0x7f80c7a4a950 <QtWayland::wl_registry::handle_global_remove(void*, wl_registry*, unsigned int)>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7fff52e1aa90) at ../src/x86/ffi64.c:710
      #28 0x00007f80c7ef0422 in wl_closure_invoke (closure=closure@entry=0x7f80b0004fe0, target=<optimized out>, 
          target@entry=0x55d3a04cefb0, opcode=opcode@entry=1, data=<optimized out>, flags=1) at ../src/connection.c:1228
      #29 0x00007f80c7ef0c79 in dispatch_event (display=display@entry=0x55d3a0495860, queue=queue@entry=0x55d3a0495958)
          at ../src/wayland-client.c:1674
      #30 0x00007f80c7ef1063 in dispatch_queue (display=0x55d3a0495860, queue=0x55d3a0495958) at ../src/wayland-client.c:1820
      #31 wl_display_dispatch_queue_pending (display=0x55d3a0495860, queue=0x55d3a0495958) at ../src/wayland-client.c:2062
      #32 0x00007f80c7a0f6a2 in QtWaylandClient::QWaylandDisplay::flushRequests (this=<optimized out>)
          at /usr/src/debug/qt6-qtwayland-6.9.0-3.fc42.x86_64/src/client/qwaylanddisplay.cpp:231
      #33 0x00007f80e3550fec in QObject::event (this=<optimized out>, e=<optimized out>)
          at /usr/src/debug/qt6-qtbase-6.9.0-1.fc42.x86_64/src/corelib/kernel/qobject.cpp:1431
      #34 0x00007f80de03d7af in QApplicationPrivate::notify_helper (this=this@entry=0x55d3a04f0620, receiver=0x55d3a04d2210, e=0x7f80b8004490)
          at /usr/src/debug/qt6-qtbase-6.9.0-1.fc42.x86_64/src/widgets/kernel/qapplication.cpp:3301
      #35 0x00007f80de047657 in QApplication::notify (this=this@entry=0x55d3a04ce9e0, receiver=receiver@entry=0x55d3a04d2210, e=0x55d3a00d42e8, 
          e@entry=0x7f80b8004490) at /usr/src/debug/qt6-qtbase-6.9.0-1.fc42.x86_64/src/widgets/kernel/qapplication.cpp:3062
      #36 0x00007f80dea66fd6 in sipQApplication::notify (this=0x55d3a04ce9e0, a0=0x55d3a04d2210, a1=0x7f80b8004490)
          at /usr/src/debug/python-pyqt6-6.9.0-1.fc42.x86_64/build/QtWidgets/sipQtWidgetsQApplication.cpp:249
      #37 0x00007f80e34f5fc8 in QCoreApplication::notifyInternal2 (receiver=0x55d3a04d2210, event=0x7f80b8004490)
          at /usr/src/debug/qt6-qtbase-6.9.0-1.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1106
      #38 0x00007f80e34f622d in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>)
          at /usr/src/debug/qt6-qtbase-6.9.0-1.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1546
      #39 0x00007f80e34f9cf6 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x55d3a00d42a0)
          at /usr/src/debug/qt6-qtbase-6.9.0-1.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1879
      #40 0x00007f80e37ffc2f in postEventSourceDispatch (s=0x55d3a04b5460)
          at /usr/src/debug/qt6-qtbase-6.9.0-1.fc42.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:246
      #41 0x00007f80e32ec040 in g_main_dispatch (context=0x55d3a0435990) at ../glib/gmain.c:3398
      #42 g_main_context_dispatch_unlocked (context=0x55d3a0435990) at ../glib/gmain.c:4249
      #43 0x00007f80e32f5128 in g_main_context_iterate_unlocked
          (context=context@entry=0x55d3a0435990, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4314
      #44 0x00007f80e32f52d3 in g_main_context_iteration (context=0x55d3a0435990, may_block=1) at ../glib/gmain.c:4379
      #45 0x00007f80e37ff46d in QEventDispatcherGlib::processEvents (this=0x55d3a03eb940, flags=...)
          at /usr/src/debug/qt6-qtbase-6.9.0-1.fc42.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:399
      #46 0x00007f80e3503783 in QEventLoop::exec (this=this@entry=0x7fff52e1b100, flags=..., flags@entry=...)
          at /usr/src/debug/qt6-qtbase-6.9.0-1.fc42.x86_64/src/corelib/global/qflags.h:77
      #47 0x00007f80e34ff249 in QCoreApplication::exec ()
          at /usr/src/debug/qt6-qtbase-6.9.0-1.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1449
      #48 0x00007f80df4dab7d in QGuiApplication::exec () at /usr/src/debug/qt6-qtbase-6.9.0-1.fc42.x86_64/src/gui/kernel/qguiapplication.cpp:1993
      #49 0x00007f80de03d719 in QApplication::exec () at /usr/src/debug/qt6-qtbase-6.9.0-1.fc42.x86_64/src/widgets/kernel/qapplication.cpp:2568
      #50 0x00007f80dea6346a in meth_QApplication_exec (sipSelf=<optimized out>, sipArgs=<optimized out>)
          at /usr/src/debug/python-pyqt6-6.9.0-1.fc42.x86_64/build/QtWidgets/sipQtWidgetsQApplication.cpp:1289
      #51 0x00007f80f2970d3a in cfunction_call (func=0x7f80a43eb790, args=<optimized out>, kwargs=<optimized out>)
          at /usr/src/debug/python3.13-3.13.3-2.fc42.x86_64/Objects/methodobject.c:551
      #52 0x00007f80f293bc4c in _PyObject_MakeTpCall
          (tstate=0x7f80f2d47870 <_PyRuntime+283024>, callable=0x7f80a43eb790, args=<optimized out>, nargs=<optimized out>, keywords=<optimized out>) at /usr/src/debug/python3.13-3.13.3-2.fc42.x86_64/Objects/call.c:242
      #53 0x00007f80f29518c3 in _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=<optimized out>, throwflag=<optimized out>)
          at /usr/src/debug/python3.13-3.13.3-2.fc42.x86_64/Python/generated_cases.c.h:813
      #54 0x00007f80f2a23d6f in PyEval_EvalCode (co=0x55d3a00789f0, globals=<optimized out>, locals=0x7f80e4435100)
          at /usr/src/debug/python3.13-3.13.3-2.fc42.x86_64/Python/ceval.c:604
      #55 0x00007f80f2a6323c in run_eval_code_obj
          (tstate=tstate@entry=0x7f80f2d47870 <_PyRuntime+283024>, co=co@entry=0x55d3a00789f0, globals=globals@entry=0x7f80e4435100, locals=locals@entry=0x7f80e4435100) at /usr/src/debug/python3.13-3.13.3-2.fc42.x86_64/Python/pythonrun.c:1381
      #56 0x00007f80f2a605b3 in run_mod
          (mod=mod@entry=0x55d3a008d228, filename=filename@entry=0x7f80e4435270, globals=globals@entry=0x7f80e4435100, locals=locals@entry=0x7f80e4435100, flags=flags@entry=0x7fff52e1b678, arena=arena@entry=0x7f80e451bd90, interactive_src=0x0, generate_new_source=0)
          at /usr/src/debug/python3.13-3.13.3-2.fc42.x86_64/Python/pythonrun.c:1466
      #57 0x00007f80f2a5dc87 in pyrun_file
          (fp=fp@entry=0x55d39ffc21a0, filename=filename@entry=0x7f80e4435270, start=start@entry=257, globals=globals@entry=0x7f80e4435100, locals=locals@entry=0x7f80e4435100, closeit=closeit@entry=1, flags=0x7fff52e1b678)
          at /usr/src/debug/python3.13-3.13.3-2.fc42.x86_64/Python/pythonrun.c:1295
      #58 0x00007f80f2a5cf4f in _PyRun_SimpleFileObject
          (fp=fp@entry=0x55d39ffc21a0, filename=filename@entry=0x7f80e4435270, closeit=closeit@entry=1, flags=flags@entry=0x7fff52e1b678)
          at /usr/src/debug/python3.13-3.13.3-2.fc42.x86_64/Python/pythonrun.c:517
      #59 0x00007f80f2a5cca1 in _PyRun_AnyFileObject
          (fp=fp@entry=0x55d39ffc21a0, filename=filename@entry=0x7f80e4435270, closeit=closeit@entry=1, flags=flags@entry=0x7fff52e1b678)
          at /usr/src/debug/python3.13-3.13.3-2.fc42.x86_64/Python/pythonrun.c:77
      #60 0x00007f80f2a5a7e1 in pymain_run_file_obj (program_name=0x7f80e44aedb0, filename=0x7f80e4435270, skip_source_first_line=0)
          at /usr/src/debug/python3.13-3.13.3-2.fc42.x86_64/Modules/main.c:410
      #61 pymain_run_file (config=0x7f80f2d19f68 <_PyRuntime+96392>) at /usr/src/debug/python3.13-3.13.3-2.fc42.x86_64/Modules/main.c:429
      #62 pymain_run_python (exitcode=0x7fff52e1b66c) at /usr/src/debug/python3.13-3.13.3-2.fc42.x86_64/Modules/main.c:696
      #63 Py_RunMain () at /usr/src/debug/python3.13-3.13.3-2.fc42.x86_64/Modules/main.c:775
      #64 0x00007f80f2a113ab in Py_BytesMain (argc=<optimized out>, argv=<optimized out>)
          at /usr/src/debug/python3.13-3.13.3-2.fc42.x86_64/Modules/main.c:829
      #65 0x00007f80f26115f5 in __libc_start_call_main (main=main@entry=0x55d37e6f34a0 <main>, argc=argc@entry=2, argv=argv@entry=0x7fff52e1b8d8)
          at ../sysdeps/nptl/libc_start_call_main.h:58
      #66 0x00007f80f26116a8 in __libc_start_main_impl
          (main=0x55d37e6f34a0 <main>, argc=2, argv=0x7fff52e1b8d8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff52e1b8c8) at ../csu/libc-start.c:360
      #67 0x000055d37e6f33d5 in _start () 

      Let me know if any further information would be helpful to debug this.
       

      Attachments

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

        Activity

          People

            mnegyokru Martin Negyokru
            airmenraid Miren Radia
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There is 1 open Gerrit change