Bug 467147 - Falkon and KMail (qtwebengine-based(?)) crash in QtWaylandClient::QWaylandWindow::handleScreensChanged() when DP screen is going to standby or powered off
Summary: Falkon and KMail (qtwebengine-based(?)) crash in QtWaylandClient::QWaylandWin...
Status: RESOLVED DUPLICATE of bug 473020
Alias: None
Product: kmail2
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Gentoo Packages Linux
: NOR crash
Target Milestone: ---
Assignee: kdepim bugs
URL:
Keywords: drkonqi, wayland
Depends on:
Blocks:
 
Reported: 2023-03-10 10:48 UTC by Andreas Sturmlechner
Modified: 2024-02-14 17:57 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andreas Sturmlechner 2023-03-10 10:48:55 UTC
Application: falkon (22.12.3)
 (Compiled from sources)
Qt Version: 5.15.8
Frameworks Version: 5.104.0
Operating System: Linux 6.1.11-gentoo x86_64
Windowing System: Wayland
Distribution: "Gentoo Linux"
DrKonqi: 5.27.2 [KCrashBackend]

-- Information about the crash:
This is reproducible every time in a Plasma Wayland session.

The crash can be reproduced every time.

-- Backtrace:
Application: Falkon (falkon), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = 0x0}
[KCrash Handler]
#6  QWeakPointer<QObject>::internalData() const (this=0x9227a09f411ca149) at /var/tmp/portage/dev-qt/qtgui-5.15.8-r3/work/qtbase-everywhere-src-5.15.8/include/QtCore/../../src/corelib/tools/qsharedpointer_impl.h:696
#7  QPointer<QScreen>::data() const (this=0x9227a09f411ca149) at /var/tmp/portage/dev-qt/qtgui-5.15.8-r3/work/qtbase-everywhere-src-5.15.8/include/QtCore/../../src/corelib/kernel/qpointer.h:77
#8  QPointer<QScreen>::operator QScreen*() const (this=0x9227a09f411ca149) at /var/tmp/portage/dev-qt/qtgui-5.15.8-r3/work/qtbase-everywhere-src-5.15.8/include/QtCore/../../src/corelib/kernel/qpointer.h:83
#9  QPlatformScreen::screen() const (this=this@entry=0x55ffbac98100) at /var/tmp/portage/dev-qt/qtgui-5.15.8-r3/work/qtbase-everywhere-src-5.15.8/src/gui/kernel/qplatformscreen.cpp:154
#10 0x00007f5e6c6f08c3 in QtWaylandClient::QWaylandWindow::handleScreensChanged() (this=0x55ffb46abc40) at /var/tmp/portage/dev-qt/qtwayland-5.15.8-r3/work/qtwayland-everywhere-src-5.15.8/src/client/qwaylandwindow.cpp:1047
#11 0x00007f5e7e4b7844 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fff878cc8d0, r=0x55ffb46abc40, this=0x55ffb4881720) at /var/tmp/portage/dev-qt/qtcore-5.15.8-r3/work/qtbase-everywhere-src-5.15.8/include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#12 doActivate<false>(QObject*, int, void**) (sender=0x55ffb47476f0, signal_index=3, argv=0x7fff878cc8d0) at /var/tmp/portage/dev-qt/qtcore-5.15.8-r3/work/qtbase-everywhere-src-5.15.8/src/corelib/kernel/qobject.cpp:3923
#13 0x00007f5e719d923a in  () at /usr/lib64/libffi.so.8
#14 0x00007f5e719d8654 in  () at /usr/lib64/libffi.so.8
#15 0x00007f5e719d8dad in ffi_call () at /usr/lib64/libffi.so.8
#16 0x00007f5e7f45c784 in wl_closure_invoke (closure=0x7f5e6400dd10, flags=<optimized out>, target=<optimized out>, opcode=0, data=<optimized out>) at ../wayland-1.21.0/src/connection.c:1025
#17 0x00007f5e7f458b28 in dispatch_event (display=display@entry=0x55ffb24f8160, queue=0x55ffb24f8230) at ../wayland-1.21.0/src/wayland-client.c:1595
#18 0x00007f5e7f45a51c in dispatch_queue (queue=0x55ffb24f8230, display=0x55ffb24f8160) at ../wayland-1.21.0/src/wayland-client.c:1741
#19 wl_display_dispatch_queue_pending (display=0x55ffb24f8160, queue=0x55ffb24f8230) at ../wayland-1.21.0/src/wayland-client.c:1983
#20 0x00007f5e6c6e9f96 in QtWaylandClient::QWaylandDisplay::flushRequests() (this=<optimized out>) at /var/tmp/portage/dev-qt/qtwayland-5.15.8-r3/work/qtwayland-everywhere-src-5.15.8/src/client/qwaylanddisplay.cpp:253
#21 0x00007f5e7e4b796c in doActivate<false>(QObject*, int, void**) (sender=0x55ffb24bc880, signal_index=4, argv=0x7fff878ccdf0) at /var/tmp/portage/dev-qt/qtcore-5.15.8-r3/work/qtbase-everywhere-src-5.15.8/src/corelib/kernel/qobject.cpp:3935
#22 0x00007f5e7e4b1587 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x55ffb24bc880, m=m@entry=0x7f5e7e758840 <QAbstractEventDispatcher::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x0) at /var/tmp/portage/dev-qt/qtcore-5.15.8-r3/work/qtbase-everywhere-src-5.15.8/src/corelib/kernel/qobject.cpp:3983
#23 0x00007f5e7e480a33 in QAbstractEventDispatcher::awake() (this=this@entry=0x55ffb24bc880) at .moc/moc_qabstracteventdispatcher.cpp:149
#24 0x00007f5e7e4d6045 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55ffb24bc880, flags=...) at /var/tmp/portage/dev-qt/qtcore-5.15.8-r3/work/qtbase-everywhere-src-5.15.8/src/corelib/kernel/qeventdispatcher_glib.cpp:430
#25 0x00007f5e7e4827bb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fff878ccf10, flags=..., flags@entry=...) at /var/tmp/portage/dev-qt/qtcore-5.15.8-r3/work/qtbase-everywhere-src-5.15.8/include/QtCore/../../src/corelib/global/qflags.h:69
#26 0x00007f5e7e48aa96 in QCoreApplication::exec() () at /var/tmp/portage/dev-qt/qtcore-5.15.8-r3/work/qtbase-everywhere-src-5.15.8/include/QtCore/../../src/corelib/global/qflags.h:121
#27 0x00007f5e7511bb7c in QGuiApplication::exec() () at /var/tmp/portage/dev-qt/qtgui-5.15.8-r3/work/qtbase-everywhere-src-5.15.8/src/gui/kernel/qguiapplication.cpp:1870
#28 0x00007f5e7e963435 in QApplication::exec() () at /var/tmp/portage/dev-qt/qtwidgets-5.15.8-r3/work/qtbase-everywhere-src-5.15.8/src/widgets/kernel/qapplication.cpp:2832
#29 0x000055ffb1dbf48d in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /var/tmp/portage/www-client/falkon-22.12.3/work/falkon-22.12.3/src/main/main.cpp:74
[Inferior 1 (process 19675) detached]

Reported using DrKonqi
Comment 1 Andreas Sturmlechner 2023-03-15 08:46:08 UTC
Similar to the linked bug, I can reproduce this with my AMD GPU (NAVI22) system, but not on the Intel laptop where the Plasma Wayland session is comparatively solid.

Unfortunately, KMail just disappears and never triggers drkonqi as it should be doing.

I am 'elevating' this bug simply because I do not think this is correct to be assigned to falkon or any other specific application.
Comment 2 Andreas Sturmlechner 2023-03-15 08:53:47 UTC
Up to date backtrace with some more debug symbols:

Application: Falkon (falkon), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = 0x0}
[KCrash Handler]
#6  QWeakPointer<QObject>::internalData() const (this=0x58f9a6764a91d4fb) at /var/tmp/portage/dev-qt/qtgui-5.15.8-r3/work/qtbase-everywhere-src-5.15.8/include/QtCore/../../src/corelib/tools/qsharedpointer_impl.h:696
#7  QPointer<QScreen>::data() const (this=0x58f9a6764a91d4fb) at /var/tmp/portage/dev-qt/qtgui-5.15.8-r3/work/qtbase-everywhere-src-5.15.8/include/QtCore/../../src/corelib/kernel/qpointer.h:77
#8  QPointer<QScreen>::operator QScreen*() const (this=0x58f9a6764a91d4fb) at /var/tmp/portage/dev-qt/qtgui-5.15.8-r3/work/qtbase-everywhere-src-5.15.8/include/QtCore/../../src/corelib/kernel/qpointer.h:83
#9  QPlatformScreen::screen() const (this=this@entry=0x5614ca343540) at /var/tmp/portage/dev-qt/qtgui-5.15.8-r3/work/qtbase-everywhere-src-5.15.8/src/gui/kernel/qplatformscreen.cpp:154
#10 0x00007f1c75c758c3 in QtWaylandClient::QWaylandWindow::handleScreensChanged() (this=0x5614c3842c80) at /var/tmp/portage/dev-qt/qtwayland-5.15.8-r3/work/qtwayland-everywhere-src-5.15.8/src/client/qwaylandwindow.cpp:1047
#11 0x00007f1c874b8664 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fffd98f2230, r=0x5614c3842c80, this=0x5614c38aac00) at /var/tmp/portage/dev-qt/qtcore-5.15.8-r3/work/qtbase-everywhere-src-5.15.8/include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#12 doActivate<false>(QObject*, int, void**) (sender=0x5614c38671b0, signal_index=3, argv=0x7fffd98f2230) at /var/tmp/portage/dev-qt/qtcore-5.15.8-r3/work/qtbase-everywhere-src-5.15.8/src/corelib/kernel/qobject.cpp:3923
#13 0x00007f1c7bc5d28a in ffi_call_unix64 () at /var/tmp/portage/dev-libs/libffi-3.4.4/work/libffi-3.4.4/src/x86/unix64.S:104
#14 0x00007f1c7bc5c6a4 in ffi_call_int (cif=cif@entry=0x7fffd98f2440, fn=fn@entry=0x7f1c75c98230 <QtWayland::wl_surface::handle_enter(void*, wl_surface*, wl_output*)>, rvalue=<optimized out>, rvalue@entry=0x0, avalue=<optimized out>, closure=closure@entry=0x0) at /var/tmp/portage/dev-libs/libffi-3.4.4/work/libffi-3.4.4/src/x86/ffi64.c:673
#15 0x00007f1c7bc5cdfd in ffi_call (cif=cif@entry=0x7fffd98f2440, fn=0x7f1c75c98230 <QtWayland::wl_surface::handle_enter(void*, wl_surface*, wl_output*)>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7fffd98f2510) at /var/tmp/portage/dev-libs/libffi-3.4.4/work/libffi-3.4.4/src/x86/ffi64.c:710
#16 0x00007f1c8860f784 in wl_closure_invoke (closure=0x7f1c6400b830, flags=<optimized out>, target=<optimized out>, opcode=0, data=<optimized out>) at ../wayland-1.21.0/src/connection.c:1025
#17 0x00007f1c8860bb28 in dispatch_event (display=display@entry=0x5614c15143a0, queue=0x5614c1514470) at ../wayland-1.21.0/src/wayland-client.c:1595
#18 0x00007f1c8860d51c in dispatch_queue (queue=0x5614c1514470, display=0x5614c15143a0) at ../wayland-1.21.0/src/wayland-client.c:1741
#19 wl_display_dispatch_queue_pending (display=0x5614c15143a0, queue=0x5614c1514470) at ../wayland-1.21.0/src/wayland-client.c:1983
#20 0x00007f1c75c6ef96 in QtWaylandClient::QWaylandDisplay::flushRequests() (this=<optimized out>) at /var/tmp/portage/dev-qt/qtwayland-5.15.8-r3/work/qtwayland-everywhere-src-5.15.8/src/client/qwaylanddisplay.cpp:253
#21 0x00007f1c874b878c in doActivate<false>(QObject*, int, void**) (sender=0x5614c14d9e60, signal_index=4, argv=0x7fffd98f2740) at /var/tmp/portage/dev-qt/qtcore-5.15.8-r3/work/qtbase-everywhere-src-5.15.8/src/corelib/kernel/qobject.cpp:3935
#22 0x00007f1c874b23a7 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x5614c14d9e60, m=m@entry=0x7f1c87758840 <QAbstractEventDispatcher::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x0) at /var/tmp/portage/dev-qt/qtcore-5.15.8-r3/work/qtbase-everywhere-src-5.15.8/src/corelib/kernel/qobject.cpp:3983
#23 0x00007f1c87481b53 in QAbstractEventDispatcher::awake() (this=this@entry=0x5614c14d9e60) at .moc/moc_qabstracteventdispatcher.cpp:149
#24 0x00007f1c874d6c75 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x5614c14d9e60, flags=...) at /var/tmp/portage/dev-qt/qtcore-5.15.8-r3/work/qtbase-everywhere-src-5.15.8/src/corelib/kernel/qeventdispatcher_glib.cpp:430
#25 0x00007f1c874838db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffd98f2860, flags=..., flags@entry=...) at /var/tmp/portage/dev-qt/qtcore-5.15.8-r3/work/qtbase-everywhere-src-5.15.8/include/QtCore/../../src/corelib/global/qflags.h:69
#26 0x00007f1c8748bbb6 in QCoreApplication::exec() () at /var/tmp/portage/dev-qt/qtcore-5.15.8-r3/work/qtbase-everywhere-src-5.15.8/include/QtCore/../../src/corelib/global/qflags.h:121
#27 0x00007f1c7e11bb9c in QGuiApplication::exec() () at /var/tmp/portage/dev-qt/qtgui-5.15.8-r3/work/qtbase-everywhere-src-5.15.8/src/gui/kernel/qguiapplication.cpp:1870
#28 0x00007f1c87963435 in QApplication::exec() () at /var/tmp/portage/dev-qt/qtwidgets-5.15.8-r3/work/qtbase-everywhere-src-5.15.8/src/widgets/kernel/qapplication.cpp:2832
#29 0x00005614c0bca48d in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /var/tmp/portage/www-client/falkon-22.12.3/work/falkon-22.12.3/src/main/main.cpp:74
[Inferior 1 (process 5885) detached]
Comment 3 Andreas Sturmlechner 2023-03-15 13:31:01 UTC
Here's some konsole output:

kmail:

qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
*** KMail got signal 11 (Exiting)
*** Dead letters dumped.
KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = kmail path = /usr/bin pid = 17354
KCrash: Arguments: /usr/bin/kmail 
The Wayland connection experienced a fatal error: Bad file descriptor

falkon:

qt.qpa.wayland: Wayland does not support QWindow::requestActivate()
qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = falkon path = /usr/bin pid = 18242
KCrash: Arguments: /usr/bin/falkon 
KCrash: Attempting to start /usr/lib64/libexec/drkonqi
qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
kf5idletime_wayland: This plugin does not support polling idle time

[1]+  Stopped                 falkon
~ $ file:///usr/lib64/qt5/qml/org/kde/kirigami.2/ContextDrawer.qml:132:9: QML ListView: Binding loop detected for property "topMargin"
The Wayland connection broke. Did the Wayland compositor die?

[1]+  Exit 1                  falkon
Comment 4 David Edmundson 2023-03-16 22:01:25 UTC
Lets not put client-side issues in kwin.
Comment 5 David Edmundson 2023-03-16 22:01:51 UTC
given this is crashing in QtWayland, can you get a hash of the version used?
Comment 6 Andreas Sturmlechner 2023-03-17 08:38:02 UTC
Of course, that's df41e7e3e1f0e5495c5c8c52f1c9bb5a32b0da27 (current kde/5.15 HEAD).
Comment 7 Andreas Sturmlechner 2023-08-20 12:15:40 UTC
Indeed when looking at Falkon window at the time before it is vanishing after being unresponsive, I can see the pre-screen-standby maximised window all of a sudden is expanding way beyond the right border of my single screen.
Comment 8 Andreas Sturmlechner 2023-12-28 19:11:17 UTC
(In reply to David Edmundson from comment #4)
> Lets not put client-side issues in kwin.

Well, now that I have upgraded to Plasma-6/KF-6 while keeping applications at 23.08.4, I can report that contrary to the behaviour with KWin5 I have not seen falkon or kmail crash anymore (at least yet, after a couple of days of usage).

Rather than that, and contrary to comment #7 and similar findings in bug 461886, I can now see falkon often "maximised" - at least believing it is - while actually having been resized to a smaller window than before screen standby. Again, this is still with falkon built with Qt5, only Plasma was upgraded.
Comment 9 Nate Graham 2024-02-14 17:57:20 UTC

*** This bug has been marked as a duplicate of bug 473020 ***