Bug 443765

Summary: Kwin crash while closing firefox
Product: [Plasma] kwin Reporter: francisco_t <leviatan1>
Component: generalAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: nate
Priority: NOR Keywords: drkonqi
Version: 5.23.0   
Target Milestone: ---   
Platform: Neon   
OS: Linux   
Latest Commit: Version Fixed In: 5.23.1

Description francisco_t 2021-10-15 07:16:54 UTC
Application: kwin_x11 (5.23.0)

Qt Version: 5.15.3
Frameworks Version: 5.87.0
Operating System: Linux 5.11.0-37-generic x86_64
Windowing System: X11
Distribution: KDE neon User - Plasma 25th Anniversary Edition
DrKonqi: 5.23.0 [KCrashBackend]

-- Information about the crash:
- What I was doing when the application crashed:
Kwin crash while firefox is closing. From I update to plasma 5.23, firefox window have a strange graphic glitchs. Sometimes the window flickers weirdly, sometimes the windows freezes, and now also kwin crash.

The reporter is unsure if this crash is reproducible.

-- Backtrace:
Application: KWin (kwin_x11), signal: Segmentation fault

[New LWP 1855]
[New LWP 1908]
[New LWP 1935]
[New LWP 2037]
[New LWP 5484]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7f63a00116d4) at ../sysdeps/nptl/futex-internal.h:183
__preamble__
[Current thread is 1 (Thread 0x7f63aeb57080 (LWP 1838))]

Thread 6 (Thread 0x7f63a4ee1700 (LWP 5484)):
[KCrash Handler]
#4  KWin::Toplevel::windowItem (this=0x0) at ./src/toplevel.cpp:475
#5  0x00007f63b6343e2e in KWin::Toplevel::visibleGeometry (this=<optimized out>) at ./src/toplevel.cpp:150
#6  0x00007f63b6326b7c in KWin::WindowThumbnailItem::paintedRect (this=0x55da36dcf250) at /usr/include/c++/9/bits/atomic_base.h:413
#7  0x00007f63b6327254 in KWin::ThumbnailItemBase::updatePaintNode (this=0x55da36dcf250, oldNode=<optimized out>) at ./src/scripting/thumbnailitem.cpp:242
#8  0x00007f63b390f2e0 in QQuickWindowPrivate::updateDirtyNode (this=0x55da3647f490, item=0x55da36dcf250) at items/qquickwindow.cpp:3872
#9  0x00007f63b390fb9b in QQuickWindowPrivate::updateDirtyNodes (this=this@entry=0x55da3647f490) at items/qquickwindow.cpp:3617
#10 0x00007f63b3911290 in QQuickWindowPrivate::syncSceneGraph (this=this@entry=0x55da3647f490) at items/qquickwindow.cpp:524
#11 0x00007f63b38aedf7 in QSGRenderThread::sync (this=this@entry=0x55da36dcf690, inExpose=inExpose@entry=false, inGrab=inGrab@entry=false) at scenegraph/qsgthreadedrenderloop.cpp:647
#12 0x00007f63b38b0d67 in QSGRenderThread::syncAndRender (this=0x55da36dcf690, grabImage=0x0) at scenegraph/qsgthreadedrenderloop.cpp:778
#13 0x00007f63b38b4f77 in QSGRenderThread::run (this=0x55da36dcf690) at scenegraph/qsgthreadedrenderloop.cpp:1043
#14 0x00007f63b549042c in QThreadPrivate::start (arg=0x55da36dcf690) at thread/qthread_unix.cpp:329
#15 0x00007f63b2efc609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#16 0x00007f63b48a1293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7f638b815700 (LWP 2037)):
#0  0x00007f63b489712b in __GI___select (nfds=41, readfds=0x7f638b814ba0, writefds=0x0, exceptfds=0x0, timeout=0x7f638b814b90) at ../sysdeps/unix/sysv/linux/select.c:41
#1  0x00007f63a6e69981 in ?? () from /lib/x86_64-linux-gnu/libnvidia-glcore.so.460.91.03
#2  0x00007f63a6e6746a in ?? () from /lib/x86_64-linux-gnu/libnvidia-glcore.so.460.91.03
#3  0x00007f63b2efc609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#4  0x00007f63b48a1293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7f639ea6c700 (LWP 1935)):
#0  0x00007f63b4894bf6 in __ppoll (fds=fds@entry=0x7f6390000d98, nfds=nfds@entry=1, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:44
#1  0x00007f63b56cd4e9 in ppoll (__ss=<optimized out>, __timeout=<optimized out>, __nfds=<optimized out>, __fds=<optimized out>) at /usr/include/x86_64-linux-gnu/bits/poll2.h:77
#2  qt_ppoll (timeout_ts=0x0, nfds=1, fds=0x7f6390000d98) at kernel/qcore_unix.cpp:132
#3  qt_ppoll (timeout_ts=0x0, nfds=1, fds=0x7f6390000d98) at kernel/qcore_unix.cpp:129
#4  qt_safe_poll (fds=0x7f6390000d98, nfds=1, timeout_ts=timeout_ts@entry=0x0) at kernel/qcore_unix.cpp:155
#5  0x00007f63b56ceb93 in QEventDispatcherUNIX::processEvents (this=<optimized out>, flags=...) at ../../include/QtCore/../../src/corelib/tools/qarraydata.h:211
#6  0x00007f63b567587b in QEventLoop::exec (this=this@entry=0x7f639ea6bbe0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#7  0x00007f63b548f292 in QThread::exec (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#8  0x00007f63b549042c in QThreadPrivate::start (arg=0x55da3655cef0) at thread/qthread_unix.cpp:329
#9  0x00007f63b2efc609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#10 0x00007f63b48a1293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7f639ffff700 (LWP 1908)):
#0  0x00007f63b4894bf6 in __ppoll (fds=fds@entry=0x7f6394000d78, nfds=nfds@entry=1, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:44
#1  0x00007f63b56cd4e9 in ppoll (__ss=<optimized out>, __timeout=<optimized out>, __nfds=<optimized out>, __fds=<optimized out>) at /usr/include/x86_64-linux-gnu/bits/poll2.h:77
#2  qt_ppoll (timeout_ts=0x0, nfds=1, fds=0x7f6394000d78) at kernel/qcore_unix.cpp:132
#3  qt_ppoll (timeout_ts=0x0, nfds=1, fds=0x7f6394000d78) at kernel/qcore_unix.cpp:129
#4  qt_safe_poll (fds=0x7f6394000d78, nfds=1, timeout_ts=timeout_ts@entry=0x0) at kernel/qcore_unix.cpp:155
#5  0x00007f63b56ceb93 in QEventDispatcherUNIX::processEvents (this=<optimized out>, flags=...) at ../../include/QtCore/../../src/corelib/tools/qarraydata.h:211
#6  0x00007f63b567587b in QEventLoop::exec (this=this@entry=0x7f639fffebc0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#7  0x00007f63b548f292 in QThread::exec (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#8  0x00007f63b353a549 in ?? () from /lib/x86_64-linux-gnu/libQt5Qml.so.5
#9  0x00007f63b549042c in QThreadPrivate::start (arg=0x55da361438c0) at thread/qthread_unix.cpp:329
#10 0x00007f63b2efc609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#11 0x00007f63b48a1293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f63a60f2700 (LWP 1855)):
#0  0x00007f63b4894bf6 in __ppoll (fds=fds@entry=0x7f63a0008018, nfds=nfds@entry=1, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:44
#1  0x00007f63b56cd4e9 in ppoll (__ss=<optimized out>, __timeout=<optimized out>, __nfds=<optimized out>, __fds=<optimized out>) at /usr/include/x86_64-linux-gnu/bits/poll2.h:77
#2  qt_ppoll (timeout_ts=0x0, nfds=1, fds=0x7f63a0008018) at kernel/qcore_unix.cpp:132
#3  qt_ppoll (timeout_ts=0x0, nfds=1, fds=0x7f63a0008018) at kernel/qcore_unix.cpp:129
#4  qt_safe_poll (fds=0x7f63a0008018, nfds=1, timeout_ts=timeout_ts@entry=0x0) at kernel/qcore_unix.cpp:155
#5  0x00007f63b56ceb93 in QEventDispatcherUNIX::processEvents (this=<optimized out>, flags=...) at ../../include/QtCore/../../src/corelib/tools/qarraydata.h:211
#6  0x00007f63b567587b in QEventLoop::exec (this=this@entry=0x7f63a60f1bb0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#7  0x00007f63b548f292 in QThread::exec (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#8  0x00007f63b533cf4b in ?? () from /lib/x86_64-linux-gnu/libQt5DBus.so.5
#9  0x00007f63b549042c in QThreadPrivate::start (arg=0x7f63b53c0d80) at thread/qthread_unix.cpp:329
#10 0x00007f63b2efc609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#11 0x00007f63b48a1293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f63aeb57080 (LWP 1838)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7f63a00116d4) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7f63a0011680, cond=0x7f63a00116a8) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7f63a00116a8, mutex=0x7f63a0011680) at pthread_cond_wait.c:647
#3  0x00007f63b549659b in QWaitConditionPrivate::wait (deadline=..., this=0x7f63a0011680) at thread/qwaitcondition_unix.cpp:146
#4  QWaitCondition::wait (this=<optimized out>, mutex=0x55da36dcf6e8, deadline=...) at thread/qwaitcondition_unix.cpp:225
#5  0x00007f63b38b3137 in QSGThreadedRenderLoop::polishAndSync (this=this@entry=0x55da36c23780, w=0x55da36c82a50, inExpose=inExpose@entry=false) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qdeadlinetimer.h:68
#6  0x00007f63b38b3d14 in QSGThreadedRenderLoop::handleUpdateRequest (this=0x55da36c23780, window=0x55da36c1bad0) at scenegraph/qsgthreadedrenderloop.cpp:1430
#7  0x00007f63b391ee67 in QQuickWindow::event (this=0x55da36c1bad0, e=0x7fff878f9d70) at items/qquickwindow.cpp:1858
#8  0x00007f639d7d14b3 in PlasmaQuick::Dialog::event(QEvent*) () from /lib/x86_64-linux-gnu/libKF5PlasmaQuick.so.5
#9  0x00007f63b4cc9dc3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#10 0x00007f63b4cd2bb8 in QApplication::notify(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007f63b5676d7a in QCoreApplication::notifyInternal2 (receiver=0x55da36c1bad0, event=0x7fff878f9d70) at ../../include/QtCore/5.15.3/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325
#12 0x00007f63b5a49d54 in QPlatformWindow::windowEvent(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#13 0x00007f63b4cd2a83 in QApplication::notify(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007f63b5676d7a in QCoreApplication::notifyInternal2 (receiver=0x55da36c1bad0, event=0x7fff878fa000) at ../../include/QtCore/5.15.3/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325
#15 0x00007f63b56d0920 in QTimerInfoList::activateTimers (this=this@entry=0x55da3612f088) at kernel/qtimerinfo_unix.cpp:643
#16 0x00007f63b56cdff0 in QEventDispatcherUNIXPrivate::activateTimers (this=this@entry=0x55da3612f000) at kernel/qeventdispatcher_unix.cpp:249
#17 0x00007f63b56cece7 in QEventDispatcherUNIX::processEvents (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:516
#18 0x00007f63ae499262 in ?? () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#19 0x00007f63b567587b in QEventLoop::exec (this=this@entry=0x7fff878fa1a0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#20 0x00007f63b567da34 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#21 0x000055da3601dae3 in main (argc=<optimized out>, argv=0x7fff878fa448) at ./src/main_x11.cpp:483
[Inferior 1 (process 1838) detached]

Reported using DrKonqi
Comment 1 Bug Janitor Service 2021-10-15 07:46:23 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/1532
Comment 2 Vlad Zahorodnii 2021-10-15 08:00:11 UTC
Git commit f1e99e971fbd08d3cf14f640fcc3569afb7cb87b by Vlad Zahorodnii.
Committed on 15/10/2021 at 07:59.
Pushed by vladz into branch 'master'.

scripting: Guard against nullptr m_client in WindowThumbnailItem

M  +3    -0    src/scripting/thumbnailitem.cpp

https://invent.kde.org/plasma/kwin/commit/f1e99e971fbd08d3cf14f640fcc3569afb7cb87b
Comment 3 Vlad Zahorodnii 2021-10-15 08:00:44 UTC
Git commit 42126a2596dad53b7e5c62856bb346187a0ad901 by Vlad Zahorodnii.
Committed on 15/10/2021 at 08:00.
Pushed by vladz into branch 'Plasma/5.23'.

scripting: Guard against nullptr m_client in WindowThumbnailItem


(cherry picked from commit f1e99e971fbd08d3cf14f640fcc3569afb7cb87b)

M  +3    -0    src/scripting/thumbnailitem.cpp

https://invent.kde.org/plasma/kwin/commit/42126a2596dad53b7e5c62856bb346187a0ad901