Bug 478679

Summary: Plasmashell crashes when opening kickoff after screen blanking
Product: [Plasma] plasmashell Reporter: Akseli Lahtinen <akselmo>
Component: generic-crashAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: crash Keywords: qt6
Priority: NOR    
Version: master   
Target Milestone: 1.0   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Akseli Lahtinen 2023-12-18 10:41:38 UTC
SUMMARY

When powersaving turns screen off, and user starts using the PC after a while (screen turning back on),
opening Kickoff few times rapidly will crash plasmashell. Unsure if this is because of using fullscreen Kickoff, or if it happens with all of them.

STEPS TO REPRODUCE
1. Let screen turn off either by waiting or running `kscreen-doctor -d off` in terminal
2. Wait couple more minutes to make sure screen is actually off
3. Move mouse to turn screen back on
4. Open kickoff menu rapidly multiple times

OBSERVED RESULT
Plasmashell crashes

EXPECTED RESULT
No crashes

SOFTWARE/OS VERSIONS
Operating System: Fedora Linux 39
KDE Plasma Version: 5.90.90
KDE Frameworks Version: 5.247.0
Qt Version: 6.6.0
Kernel Version: 6.6.6-200.fc39.x86_64 (64-bit)
Graphics Platform: Wayland
Processors: 12 × AMD Ryzen 5 3600 6-Core Processor
Memory: 15.5 GiB of RAM
Graphics Processor: AMD Radeon RX 6600

ADDITIONAL INFORMATION
Using kdesrc-build workspace

Backtrace:

#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0)
    at pthread_kill.c:44
44            return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;                       
[Current thread is 1 (Thread 0x7f07de725240 (LWP 102726))]
(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0)
    at pthread_kill.c:44
#1  0x00007f07e2aae8a3 in __pthread_kill_internal (signo=11, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007f07e2a5c8ee in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
#3  0x00007f07e6f96f44 in KCrash::defaultCrashHandler (sig=11)
    at /home/akseli/Repositories/kde/src/kcrash/src/kcrash.cpp:586
#4  0x00007f07e2a5c9a0 in <signal handler called> () at /lib64/libc.so.6
#5  0x000000000043ef69 in WaylandAutoHideScreenEdge::create (this=0x2b07300)
    at /home/akseli/Repositories/kde/src/plasma-workspace/shell/autohidescreenedge.cpp:148
#6  0x000000000043ed9b in WaylandAutoHideScreenEdge::eventFilter
    (this=0x2b07300, watched=0x3a07380, event=0x7ffc49249840)
    at /home/akseli/Repositories/kde/src/plasma-workspace/shell/autohidescreenedge.cpp:105
#7  0x00007f07e31a092e in QCoreApplicationPrivate::sendThroughObjectEventFilters
    (receiver=receiver@entry=0x3a07380, event=event@entry=0x7ffc49249840)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/kernel/qcoreapplication.cpp:1250
#8  0x00007f07e5bc2b28 in QApplicationPrivate::notify_helper
    (this=<optimized out>, receiver=0x3a07380, e=0x7ffc49249840)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/widgets/kernel/qapplication.cpp:3284
#9  0x00007f07e31a0ba8 in QCoreApplication::notifyInternal2 (receiver=0x3a07380, event=0x7ffc49249840)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/kernel/qcoreapplication.cpp:1118
#10 0x00007f07e31a0dbd in QCoreApplication::sendSpontaneousEvent
    (receiver=<optimized out>, event=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/kernel/qcoreapplication.cpp:1550
#11 0x00007f07e3a0a1ad in QGuiApplicationPrivate::processExposeEvent (e=0x37c8f50)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/gui/kernel/qguiapplication.cpp:3276
#12 0x00007f07e3a67c1c in QWindowSystemInterface::sendWindowSystemEvents (flags=...)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/gui/kernel/qwindowsysteminterface.cpp:1109
--Type <RET> for more, q to quit, c to continue without paging--c
#13 0x00007f07e3f3ff14 in userEventSourceDispatch (source=<optimized out>) at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/gui/platform/unix/qeventdispatcher_glib.cpp:38
#14 0x00007f07e2182e5c in g_main_dispatch (context=0x7f07cc000ef0) at ../glib/gmain.c:3476
#15 g_main_context_dispatch_unlocked (context=0x7f07cc000ef0) at ../glib/gmain.c:4284
#16 0x00007f07e21ddf18 in g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7f07cc000ef0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at ../glib/gmain.c:4349
#17 0x00007f07e2180ad3 in g_main_context_iteration (context=0x7f07cc000ef0, may_block=1) at ../glib/gmain.c:4414
#18 0x00007f07e344096f in QEventDispatcherGlib::processEvents (this=0x19ddb20, flags=...)
    at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:393
#19 0x00007f07e31ad9bb in QEventLoop::exec (this=this@entry=0x7ffc49249b80, flags=..., flags@entry=...) at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/global/qflags.h:34
#20 0x00007f07e31a97bd in QCoreApplication::exec () at /usr/src/debug/qt6-qtbase-6.6.0-6.fc39.x86_64/src/corelib/global/qflags.h:74
#21 0x000000000044283e in main (argc=2, argv=0x7ffc4924a808) at /home/akseli/Repositories/kde/src/plasma-workspace/shell/main.cpp:214
Comment 1 Bug Janitor Service 2023-12-18 11:25:34 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/3695
Comment 2 Akseli Lahtinen 2023-12-18 16:24:02 UTC
Git commit 65cf607857e516d0335058ff49909052a154b1da by Akseli Lahtinen.
Committed on 18/12/2023 at 17:23.
Pushed by akselmo into branch 'master'.

Fix kickoff crashing plasmashell after screen turnoff

If kickoff was opened rapidly after screen turned off,
it would crash. This fixes it.

M  +1    -1    shell/autohidescreenedge.cpp

https://invent.kde.org/plasma/plasma-workspace/-/commit/65cf607857e516d0335058ff49909052a154b1da