Bug 444306 - KWIN Crash while moving picture in Xnview MP
Summary: KWIN Crash while moving picture in Xnview MP
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: general (show other bugs)
Version: 5.23.1
Platform: Neon Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2021-10-24 03:08 UTC by Carlos Castro
Modified: 2021-12-13 15:36 UTC (History)
1 user (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 Carlos Castro 2021-10-24 03:08:48 UTC
Application: kwin_x11 (5.23.1)

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

-- Information about the crash:
- What I was doing when the application crashed:

I had Chrome, Opera and Xnview MP open, tried to move an image from one folder through another and when the dialog window opened to choose the destination folder KWIN crashed.

- Unusual behavior I noticed:

Sólo sucede con Xnview MP abierto y sólo al abrirse la ventana de diálogo para escoger la carpeta de destino.

- Custom settings of the application:

None in particular.

The crash can be reproduced every time.

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

[New LWP 1450]
[New LWP 1475]
[New LWP 1603]
[New LWP 1619]
[New LWP 2152]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
0x00007f529ab3faff in __GI___poll (fds=0x7ffc34a20b38, nfds=1, timeout=1000) at ../sysdeps/unix/sysv/linux/poll.c:29
__preamble__
[Current thread is 1 (Thread 0x7f5294e02080 (LWP 1429))]

Thread 6 (Thread 0x7f528a8d4700 (LWP 2152)):
#0  0x00007f529ab3fbf6 in __ppoll (fds=0x7f527c006eb8, nfds=1, timeout=<optimized out>, sigmask=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:44
#1  0x00007f529b9784e9 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#2  0x00007f529b979b93 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#3  0x00007f529b92087b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007f529b73a292 in QThread::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f52997e5549 in ?? () from /lib/x86_64-linux-gnu/libQt5Qml.so.5
#6  0x00007f529b73b42c in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007f52991a7609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#8  0x00007f529ab4c293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7f5266fbf700 (LWP 1619)):
#0  0x00007f529ab4212b in __GI___select (nfds=39, readfds=0x7f5266fbeba0, writefds=0x0, exceptfds=0x0, timeout=0x7f5266fbeb90) at ../sysdeps/unix/sysv/linux/select.c:41
#1  0x00007f5291d670f1 in ?? () from /lib/x86_64-linux-gnu/libnvidia-glcore.so.470.74
#2  0x00007f5291d64c1d in ?? () from /lib/x86_64-linux-gnu/libnvidia-glcore.so.470.74
#3  0x00007f52991a7609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#4  0x00007f529ab4c293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7f527be6e700 (LWP 1603)):
#0  0x00007f529ab3fbf6 in __ppoll (fds=0x7f5270000d98, nfds=1, timeout=<optimized out>, sigmask=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:44
#1  0x00007f529b9784e9 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#2  0x00007f529b979b93 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#3  0x00007f529b92087b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007f529b73a292 in QThread::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f529b73b42c in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007f52991a7609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#7  0x00007f529ab4c293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7f5289e9e700 (LWP 1475)):
#0  0x00007f529ab3fbf6 in __ppoll (fds=0x7f5280000d78, nfds=1, timeout=<optimized out>, sigmask=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:44
#1  0x00007f529b9784e9 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#2  0x00007f529b979b93 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#3  0x00007f529b92087b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007f529b73a292 in QThread::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f52997e5549 in ?? () from /lib/x86_64-linux-gnu/libQt5Qml.so.5
#6  0x00007f529b73b42c in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007f52991a7609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#8  0x00007f529ab4c293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f528bae5700 (LWP 1450)):
#0  0x00007f529ab3fbf6 in __ppoll (fds=0x7f52840074f8, nfds=1, timeout=<optimized out>, sigmask=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:44
#1  0x00007f529b9784e9 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#2  0x00007f529b979b93 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#3  0x00007f529b92087b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007f529b73a292 in QThread::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f529b5e7f4b in ?? () from /lib/x86_64-linux-gnu/libQt5DBus.so.5
#6  0x00007f529b73b42c in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007f52991a7609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#8  0x00007f529ab4c293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f5294e02080 (LWP 1429)):
[KCrash Handler]
#4  QListData::size (this=0x55dc4d7d66e0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:115
#5  QList<QSGOpenGLAtlasTexture::TextureBase*>::size (this=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:176
#6  QSGOpenGLAtlasTexture::AtlasBase::bind (this=0x55dc4d7d66b0, filtering=QSGTexture::Linear) at scenegraph/util/qsgopenglatlastexture.cpp:249
#7  0x00007f5299b11ad4 in QSGOpaqueTextureMaterialShader::updateState (this=0x55dc4d03d8c0, state=..., newEffect=<optimized out>, oldEffect=0x0) at scenegraph/util/qsgtexturematerial.cpp:112
#8  0x00007f5299af5179 in QSGBatchRenderer::Renderer::renderMergedBatch (this=0x55dc4dee5dc0, batch=0x55dc4d8433c0) at ../../include/QtQuick/5.15.3/QtQuick/private/../../../../../src/quick/scenegraph/coreapi/qsgrenderer_p.h:197
#9  0x00007f5299afab3d in QSGBatchRenderer::Renderer::renderBatches (this=this@entry=0x55dc4dee5dc0) at scenegraph/coreapi/qsgbatchrenderer.cpp:4051
#10 0x00007f5299afb22a in QSGBatchRenderer::Renderer::render (this=<optimized out>) at scenegraph/coreapi/qsgbatchrenderer.cpp:4363
#11 0x00007f5299adede4 in QSGRenderer::renderScene (bindable=..., this=0x55dc4dee5dc0) at scenegraph/coreapi/qsgrenderer.cpp:264
#12 QSGRenderer::renderScene (this=0x55dc4dee5dc0, bindable=...) at scenegraph/coreapi/qsgrenderer.cpp:220
#13 0x00007f5299adf29b in QSGRenderer::renderScene (fboId=<optimized out>, this=<optimized out>) at scenegraph/coreapi/qsgrenderer.cpp:205
#14 QSGRenderer::renderScene (this=<optimized out>, fboId=<optimized out>) at scenegraph/coreapi/qsgrenderer.cpp:192
#15 0x00007f5299b4e047 in QSGDefaultRenderContext::renderNextFrame (this=0x55dc4e0ba160, renderer=0x55dc4dee5dc0, fboId=<optimized out>) at scenegraph/qsgdefaultrendercontext.cpp:228
#16 0x00007f5299bbb999 in QQuickWindowPrivate::renderSceneGraph (this=this@entry=0x55dc4df39ed0, size=..., surfaceSize=...) at items/qquickwindow.cpp:617
#17 0x00007f5299c45abd in QQuickRenderControl::render (this=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qsize.h:125
#18 0x00007f529a900623 in KWin::EffectQuickView::update() () from /lib/x86_64-linux-gnu/libkwineffects.so.13
#19 0x00007f529b958d9e in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007f529b95d8de in QTimer::timeout(QTimer::QPrivateSignal) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#21 0x00007f529b94f835 in QObject::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#22 0x00007f529af74dc3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007f529af7dbb8 in QApplication::notify(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x00007f529b921d7a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007f529b97b920 in QTimerInfoList::activateTimers() () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#26 0x00007f529b979ce7 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#27 0x00007f5294744262 in ?? () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#28 0x00007f529b92087b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#29 0x00007f529b928a34 in QCoreApplication::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#30 0x000055dc4c223ae3 in ?? ()
#31 0x00007f529aa510b3 in __libc_start_main (main=0x55dc4c2236e0, argc=1, argv=0x7ffc34a22ec8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffc34a22eb8) at ../csu/libc-start.c:308
#32 0x000055dc4c22401e in ?? ()
[Inferior 1 (process 1429) detached]

Possible duplicates by query: bug 444077, bug 408368, bug 405595, bug 400437, bug 397530.

Reported using DrKonqi
Comment 1 Bug Janitor Service 2021-12-13 10:58:00 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/1791
Comment 2 Vlad Zahorodnii 2021-12-13 13:48:46 UTC
Git commit 64f2cdf9ed290a1fb7c2bf41753613078eb023c4 by Vlad Zahorodnii.
Committed on 13/12/2021 at 13:29.
Pushed by vladz into branch 'master'.

Fix memory leak in some plasma components

A few plasma components cache QSGTexture. Those components rely on
texture references going away with QSGNode users. However, with the
current tear down logic, OffscreenQuickView won't destroy any paint
nodes.

Destroy QQuickRenderControl before QQuickWindow to ensure that are no
paint nodes left alive after OffscreenQuickView.
Related: bug 444429, bug 444381, bug 444077

M  +7    -4    src/libkwineffects/kwinoffscreenquickview.cpp

https://invent.kde.org/plasma/kwin/commit/64f2cdf9ed290a1fb7c2bf41753613078eb023c4
Comment 3 Vlad Zahorodnii 2021-12-13 15:36:48 UTC
Git commit 8accc777a5b3ab1e53341f1838ed636652dc1221 by Vlad Zahorodnii.
Committed on 13/12/2021 at 14:04.
Pushed by vladz into branch 'Plasma/5.23'.

Fix memory leak in some plasma components

A few plasma components cache QSGTexture. Those components rely on
texture references going away with QSGNode users. However, with the
current tear down logic, OffscreenQuickView won't destroy any paint
nodes.

Destroy QQuickRenderControl before QQuickWindow to ensure that are no
paint nodes left alive after OffscreenQuickView.
Related: bug 444429, bug 444381, bug 444077
(cherry picked from commit 64f2cdf9ed290a1fb7c2bf41753613078eb023c4)

M  +7    -5    src/libkwineffects/kwineffectquickview.cpp

https://invent.kde.org/plasma/kwin/commit/8accc777a5b3ab1e53341f1838ed636652dc1221