https://bugs.kde.org/show_bug.cgi?id=478086

Matt Fagnani <matt.fagn...@bell.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|plasmashell crashed         |plasmashell crashed
                   |sometimes in                |sometimes in
                   |QWaitCondition::wait when   |QtWaylandClient::QWaylandWi
                   |hovering over task manager  |ndow::createDecoration when
                   |icons                       |hovering over task manager
                   |                            |icons
         Resolution|WAITINGFORINFO              |---
             Status|NEEDSINFO                   |REPORTED

--- Comment #3 from Matt Fagnani <matt.fagn...@bell.net> ---
(In reply to Nate Graham from comment #2)
> Does the issue reproduce if you uncheck "Show small preview windows when
> hovering over Tasks" in the Task Manager widget's settings window and then
> do the same thing to cause the crash to happen?

I unchecked "Show small preview windows when hovering over Tasks" in the Task
Manager widget's settings window. I tried to reproduce the crash as in comment
1 for several minutes, but plasmashell didn't crash. The 5 crashes like this in
Plasma 5.90.0 took from 1 second to 2 minutes to happen, so the problem might
not happen with the preview windows disabled. I checked "Show small preview
windows when hovering over Tasks" in the Task Manager widget's settings window.
I reproduced the crash after about 1 minute of moving the cursor as before. I
think that the problem is actually in thread 73 instead of thread 1 as in the
trace I put in comment. drkonqi focused on thread 1, but it was just
waiting/polling. Both thread 73 and thread 1 had [KCrash Handler] at the top in
drkonqi. Using coredumpctl gdb, the trace of thread 73 was the following.

(gdb) thread 73
[Switching to thread 73 (Thread 0x7f369df6f6c0 (LWP 3082))]
#0  0x00007f375d51841d in __GI___poll (fds=fds@entry=0x7f369df6d768,
nfds=nfds@entry=1, timeout=timeout@entry=1000) at
../sysdeps/unix/sysv/linux/poll.c:29
Downloading source file
/usr/src/debug/glibc-2.38.9000-26.fc40.x86_64/io/../sysdeps/unix/sysv/linux/poll.c
29        return SYSCALL_CANCEL (poll, fds, nfds, timeout);
(gdb) bt
#0  0x00007f375d51841d in __GI___poll (fds=fds@entry=0x7f369df6d768,
nfds=nfds@entry=1, timeout=timeout@entry=1000) at
../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f37607feb98 in poll (__timeout=1000, __nfds=1, __fds=0x7f369df6d768)
at /usr/include/bits/poll2.h:39
#2  pollDrKonqiSocket (sockfd=3, pid=<optimized out>) at
/usr/src/debug/kf6-kcrash-5.246.0-1.fc40.x86_64/src/kcrash.cpp:844
#3  KCrash::startProcess (argv=argv@entry=0x7f369df6d8a8,
waitAndExit=waitAndExit@entry=true, argc=<optimized out>)
    at /usr/src/debug/kf6-kcrash-5.246.0-1.fc40.x86_64/src/kcrash.cpp:706
#4  0x00007f37607ff659 in KCrash::defaultCrashHandler (sig=11) at
/usr/src/debug/kf6-kcrash-5.246.0-1.fc40.x86_64/src/kcrash.cpp:602
#5  <signal handler called>
#6  0x00007f375dec0a40 in typeinfo name for QObjectCleanupHandler () from
/lib64/libQt6Core.so.6
#7  0x00007f37604f3f5a in QtWaylandClient::QWaylandWindow::createDecoration
(this=0x564f65c87540)
    at
/usr/src/debug/qt6-qtwayland-6.6.1-1.fc40.x86_64/src/client/qwaylandwindow.cpp:1034
#8  0x00007f37588e199c in QtWaylandClient::QWaylandGLContext::makeCurrent
(this=this@entry=0x7f3710002490, surface=<optimized out>)
    at
/usr/src/debug/qt6-qtwayland-6.6.1-1.fc40.x86_64/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp:315
#9  0x00007f375e79c188 in QOpenGLContext::makeCurrent (this=0x7f37100021e0,
surface=surface@entry=0x564f65d371f0)
    at
/usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/gui/kernel/qopenglcontext.cpp:661
#10 0x00007f375e7b48e9 in QRhiGles2::ensureContext (this=0x7f3710001b70,
surface=0x564f65d371f0)
    at
/usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/gui/rhi/qrhigles2.cpp:619
#11 0x00007f375e7c071e in QRhiGles2::beginFrame (this=0x7f3710001b70,
swapChain=0x7f37101c8ea0)
    at
/usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/gui/rhi/qrhigles2.cpp:2028
#12 0x00007f375e644bea in QRhi::beginFrame (this=0x7f3710001b50,
swapChain=0x7f37101c8ea0, flags=..., flags@entry=...)
    at /usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/gui/rhi/qrhi.cpp:10146
#13 0x00007f375f8c29f4 in QSGRenderThread::syncAndRender
(this=this@entry=0x564f66f2b500) at /usr/include/qt6/QtCore/qflags.h:73
#14 0x00007f375f8c5e93 in QSGRenderThread::run (this=0x564f66f2b500)
    at
/usr/src/debug/qt6-qtdeclarative-6.6.1-1.fc40.x86_64/src/quick/scenegraph/qsgthreadedrenderloop.cpp:946
#15 0x00007f375dd50ace in operator() (__closure=<optimized out>) at
/usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/corelib/thread/qthread_unix.cpp:324
#16 (anonymous
namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> >
(t=...)
    at
/usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/corelib/thread/qthread_unix.cpp:260
#17 QThreadPrivate::start (arg=0x564f66f2b500) at
/usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/corelib/thread/qthread_unix.cpp:283
#18 0x00007f375d4a5c91 in start_thread (arg=<optimized out>) at
pthread_create.c:447
#19 0x00007f375d525f9c in clone3 () at
../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

QtWaylandClient::QWaylandWindow::createDecoration in frame 7 of thread 73 had
mShellSurface=0x0, so !mShellSurface->wantsDecorations() might've been a null
pointer dereference at
/usr/src/debug/qt6-qtwayland-6.6.1-1.fc40.x86_64/src/client/qwaylandwindow.cpp:1034.
This problem might involve a race condition in which the Wayland surface of the
window previews was occasionally freed then used.

(gdb) frame 7
#7  0x00007f37604f3f5a in QtWaylandClient::QWaylandWindow::createDecoration
(this=0x564f65c87540)
    at
/usr/src/debug/qt6-qtwayland-6.6.1-1.fc40.x86_64/src/client/qwaylandwindow.cpp:1034
Downloading source file
/usr/src/debug/qt6-qtwayland-6.6.1-1.fc40.x86_64/src/client/qwaylandwindow.cpp
1034        if (!mShellSurface || !mShellSurface->wantsDecorations())
(gdb) p mShellSurface
$1 = (QtWaylandClient::QWaylandShellSurface *) 0x0

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to