Bug 443174

Summary: Plasmashell Crashes Upon Display Port Monitor Turning Off In Wayland
Product: [Plasma] plasmashell Reporter: ltstarwarskid
Component: generic-crashAssignee: Plasma Bugs List <plasma-bugs>
Severity: crash CC: globalunity, kde, nate
Priority: NOR Keywords: wayland
Version: master   
Target Milestone: 1.0   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: drkonqi generated crash report. drkonqi crashed upon attempt to submit
New crash information added by DrKonqi

Description ltstarwarskid 2021-09-30 22:02:08 UTC
Created attachment 142047 [details]
drkonqi generated crash report. drkonqi crashed upon attempt to submit

Application: plasmashell (5.22.5)

Qt Version: 5.15.2
Frameworks Version: 5.86.0
Operating System: Linux 5.11.0-37-generic x86_64
Windowing System: Wayland
Drkonqi Version: 5.22.5
Distribution: Ubuntu 21.04

- What I was doing when the application crashed:
Logged in and restored session with Wayland as my compositor, then allowed monitor to idle-off. Plasmashell crashed sometime between monitor turning off and monitor turning back on.

- Unusual behavior I noticed:

Testing showed that a crash can be triggered by manually turning monitor off as well. Only present on Wayland session, does not exist on X11 as compositor. Occured with standard kde-full package available via distro's GUI software manager, attempted to resolve via grabbing the updates on the updates and backports PPAs, this did not resolve it. Locking screen when monitor is on does not trigger crash.

- Custom settings of the application:

OS: Ubuntu with KDE plasma installed after initial install, updates and backports PPA for kubuntu added. OS is upgrade from 20.04 to hirsute. Unknown if existed on 20.04 configuration, as did not attempt to use Wayland until after update.

plasma-workspace/hirsute 4:5.22.5-0ubuntu1~ubuntu21.04~ppa1

CPU: Ryzen 3950X
GPU: AMD 5700 XT
RAM: 32GB ECC 3200 MHz, JDEC default timings
Motherboard: ASrock x570 Creator
OS Drive: Corsair Force Series MP600 2TB NVMe
Monitor: LG ‎27GN950-B connected via DP, USB connected as well for additional functionality when running Windows

Note, system is dual boot with Win10.

The crash can be reproduced every time.

-- Backtrace:
Application: Plasma (plasmashell), signal: Aborted

[KCrash Handler]
#4  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
#5  0x00007f5a5c015864 in __GI_abort () at abort.c:79
#6  0x00007f5a5c486c77 in qt_message_fatal (message=<synthetic pointer>..., context=...) at global/qlogging.cpp:1914
#7  QMessageLogger::fatal (this=this@entry=0x7fff9b0377b0, msg=msg@entry=0x7f5a5a6cb0f8 "The Wayland connection experienced a fatal error: %s") at global/qlogging.cpp:893
#8  0x00007f5a5a651f54 in QtWaylandClient::QWaylandDisplay::checkError (this=<optimized out>) at qwaylanddisplay.cpp:211
#9  0x00007f5a5a652f9a in QtWaylandClient::QWaylandDisplay::flushRequests (this=0x557c92ef8da0) at qwaylanddisplay.cpp:222
#10 0x00007f5a5a65b0bf in QtWaylandClient::QWaylandWindow::setVisible (this=0x557c9684f3d0, visible=<optimized out>) at qwaylandwindow.cpp:430
#11 0x00007f5a5ca9fa0b in QWindowPrivate::setVisible (this=0x557c93e8b930, visible=<optimized out>) at kernel/qwindow.cpp:408
#12 0x0000557c911dfc69 in ShellCorona::primaryOutputChanged (this=0x557c92f1b020) at ./shell/shellcorona.cpp:748
#13 0x00007f5a5c6e65c7 in QtPrivate::QSlotObjectBase::call (a=0x7fff9b037a80, r=0x557c92f1b020, this=0x557c935bc370) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#14 doActivate<false> (sender=0x7fff9b0384e0, signal_index=11, argv=argv@entry=0x7fff9b037a80) at kernel/qobject.cpp:3886
#15 0x00007f5a5c6df728 in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7f5a5d0180a0 <QGuiApplication::staticMetaObject>, local_signal_index=local_signal_index@entry=3, argv=argv@entry=0x7fff9b037a80) at kernel/qobject.cpp:3946
#16 0x00007f5a5ca857a6 in QGuiApplication::primaryScreenChanged (this=<optimized out>, _t1=<optimized out>) at .moc/moc_qguiapplication.cpp:403
#17 0x00007f5a5cabdbed in QScreen::~QScreen (this=0x557c92f04140, __in_chrg=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:116
#18 0x00007f5a5cabdf2d in QScreen::~QScreen (this=0x557c92f04140, __in_chrg=<optimized out>) at kernel/qscreen.cpp:172
#19 0x00007f5a5ca6822b in QWindowSystemInterface::handleScreenRemoved (platformScreen=0x557c92f02000) at kernel/qwindowsysteminterface.cpp:844
#20 0x00007f5a5a65467d in QtWaylandClient::QWaylandDisplay::registry_global_remove (this=0x557c92ef8da0, id=34) at qwaylanddisplay.cpp:418
#21 0x00007f5a5aa19045 in ffi_call_unix64 () at ../src/x86/unix64.S:101
#22 0x00007f5a5aa18449 in ffi_call_int (cif=<optimized out>, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=<optimized out>) at ../src/x86/ffi64.c:669
#23 0x00007f5a5bf9d57e in ?? () from /opt/amdgpu/lib/x86_64-linux-gnu/libwayland-client.so.0
#24 0x00007f5a5bf98dd8 in ?? () from /opt/amdgpu/lib/x86_64-linux-gnu/libwayland-client.so.0
#25 0x00007f5a5bf9a89c in wl_display_dispatch_queue_pending () from /opt/amdgpu/lib/x86_64-linux-gnu/libwayland-client.so.0
#26 0x00007f5a5a652f83 in QtWaylandClient::QWaylandDisplay::flushRequests (this=0x557c92ef8da0) at qwaylanddisplay.cpp:221
#27 0x00007f5a5c6e6600 in doActivate<false> (sender=0x557c92f68d50, signal_index=3, argv=argv@entry=0x7fff9b038070) at kernel/qobject.cpp:3898
#28 0x00007f5a5c6df728 in QMetaObject::activate (sender=sender@entry=0x557c92f68d50, m=m@entry=0x7f5a5c94a160 <QSocketNotifier::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff9b038070) at kernel/qobject.cpp:3946
#29 0x00007f5a5c6e9be3 in QSocketNotifier::activated (this=this@entry=0x557c92f68d50, _t1=..., _t2=<optimized out>, _t3=...) at .moc/moc_qsocketnotifier.cpp:178
#30 0x00007f5a5c6ea413 in QSocketNotifier::event (this=0x557c92f68d50, e=0x7fff9b038180) at kernel/qsocketnotifier.cpp:302
#31 0x00007f5a5d39c783 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x557c92f68d50, e=0x7fff9b038180) at kernel/qapplication.cpp:3632
#32 0x00007f5a5c6ae7ba in QCoreApplication::notifyInternal2 (receiver=0x557c92f68d50, event=0x7fff9b038180) at kernel/qcoreapplication.cpp:1063
#33 0x00007f5a5c708e05 in socketNotifierSourceDispatch (source=0x557c92f29cc0) at kernel/qeventdispatcher_glib.cpp:107
#34 0x00007f5a5aa738eb in g_main_dispatch (context=0x557c92f31bb0) at ../../../glib/gmain.c:3337
#35 g_main_context_dispatch (context=0x557c92f31bb0) at ../../../glib/gmain.c:4055
#36 0x00007f5a5aac6d28 in g_main_context_iterate.constprop.0 (context=context@entry=0x557c92f31bb0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4131
#37 0x00007f5a5aa71023 in g_main_context_iteration (context=0x557c92f31bb0, may_block=may_block@entry=1) at ../../../glib/gmain.c:4196
#38 0x00007f5a5c70821b in QEventDispatcherGlib::processEvents (this=0x557c92f69190, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#39 0x00007f5a5c6ad11b in QEventLoop::exec (this=this@entry=0x7fff9b038390, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#40 0x00007f5a5c6b5604 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#41 0x00007f5a5ca87520 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1867
#42 0x00007f5a5d39c6f9 in QApplication::exec () at kernel/qapplication.cpp:2824
#43 0x0000557c911b9e08 in main (argc=<optimized out>, argv=0x7fff9b038500) at ./shell/main.cpp:254
[Inferior 1 (process 38390) detached]

The reporter indicates this bug may be a duplicate of or related to bug 439712, bug 438839.

Possible duplicates by query: bug 442803, bug 442409, bug 441421, bug 441365, bug 441234.

Report to https://bugs.kde.org/
Comment 1 David Edmundson 2021-10-03 19:53:18 UTC

*** This bug has been marked as a duplicate of bug 439321 ***
Comment 2 Nate Graham 2021-10-04 14:23:59 UTC

*** This bug has been marked as a duplicate of bug 438839 ***
Comment 3 Ben 2022-02-21 08:13:49 UTC
Created attachment 146984 [details]
New crash information added by DrKonqi

plasmashell (5.24.1) using Qt 5.15.2

- What I was doing when the application crashed:

I turnred the monitor (Primary and VGA one) off then back on again

-- Backtrace (Reduced):
#6  0x00007f709620c54a in QtWayland::wl_output::handle_done(void*, wl_output*) (data=0x55f4683049c0, object=0x55f468304a70) at qwayland-wayland.cpp:2247
#7  0x00007f7097aa5572 in ffi_call_unix64 () at ../src/x86/unix64.S:105
#8  0x00007f7097aa2296 in ffi_call_int (cif=<optimized out>, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=<optimized out>) at ../src/x86/ffi64.c:672
#9  0x00007f709a37f9c0 in wl_closure_invoke (closure=closure@entry=0x7f708c00ec00, target=<optimized out>, target@entry=0x55f468304a70, opcode=opcode@entry=2, data=<optimized out>, flags=<optimized out>) at ../src/connection.c:1025
#10 0x00007f709a380103 in dispatch_event (display=display@entry=0x55f4653fb1a0, queue=0x55f4653fb270, queue=<optimized out>) at ../src/wayland-client.c:1583