Bug 432999 - Plasma crashes in QSGBatchRenderer::Renderer::renderMergedBatch() when dragging a widget over the panel
Summary: Plasma crashes in QSGBatchRenderer::Renderer::renderMergedBatch() when draggi...
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: generic-crash (show other bugs)
Version: master
Platform: Other Linux
: VHI crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
: 418084 424022 430057 431942 434533 438216 439752 442409 442938 446332 455387 456990 457827 457969 463332 (view as bug list)
Depends on:
Blocks:
 
Reported: 2021-02-16 08:55 UTC by dS810
Modified: 2023-05-22 18:21 UTC (History)
22 users (show)

See Also:
Latest Commit:
Version Fixed In: 5.101


Attachments
screencast (405.92 KB, video/x-matroska)
2021-02-16 09:00 UTC, dS810
Details
New crash information added by DrKonqi (102.26 KB, text/plain)
2022-04-28 10:20 UTC, Eric Kotato
Details
New crash information added by DrKonqi (9.22 KB, text/plain)
2023-05-22 18:21 UTC, Niels Mayer
Details

Note You need to log in before you can comment on or make changes to this bug.
Description dS810 2021-02-16 08:55:50 UTC
Application: plasmashell (5.20.5)

Qt Version: 5.15.2
Frameworks Version: 5.79.0
Operating System: Linux 5.10.16-arch1-1 x86_64
Windowing system: X11
Distribution: Arch Linux

-- Information about the crash:
I have a task bar docked on the top.

If i move a widget over the taksbar it crashes every time.

The crash can be reproduced every time.

-- Backtrace:
Application: Plasma (plasmashell), signal: Segmentation fault

[KCrash Handler]
#4  0x00007f80edd8c560 in QSGBatchRenderer::Renderer::renderMergedBatch(QSGBatchRenderer::Batch const*) () at /usr/lib/libQt5Quick.so.5
#5  0x00007f80edd91576 in QSGBatchRenderer::Renderer::renderBatches() () at /usr/lib/libQt5Quick.so.5
#6  0x00007f80edd91cc5 in QSGBatchRenderer::Renderer::render() () at /usr/lib/libQt5Quick.so.5
#7  0x00007f80edd79e82 in QSGRenderer::renderScene(QSGBindable const&) () at /usr/lib/libQt5Quick.so.5
#8  0x00007f80edd7a364 in QSGRenderer::renderScene(unsigned int) () at /usr/lib/libQt5Quick.so.5
#9  0x00007f80edddac03 in QSGDefaultRenderContext::renderNextFrame(QSGRenderer*, unsigned int) () at /usr/lib/libQt5Quick.so.5
#10 0x00007f80ede467a1 in QQuickWindowPrivate::renderSceneGraph(QSize const&, QSize const&) () at /usr/lib/libQt5Quick.so.5
#11 0x00007f80edde8eff in  () at /usr/lib/libQt5Quick.so.5
#12 0x00007f80edde9897 in  () at /usr/lib/libQt5Quick.so.5
#13 0x00007f80ec1a4eff in  () at /usr/lib/libQt5Core.so.5
#14 0x00007f80eb1db299 in start_thread () at /usr/lib/libpthread.so.0
#15 0x00007f80ebe2a053 in clone () at /usr/lib/libc.so.6

Thread 9 (LWP 1052 "plasmashell"):
#1  0x00007f80ea3c3524 in  () at /usr/lib/libusbmuxd-2.0.so.6
#2  0x00007f80ea3c48a9 in  () at /usr/lib/libusbmuxd-2.0.so.6
#3  0x00007f80eb1db299 in start_thread () at /usr/lib/libpthread.so.0
#4  0x00007f80ebe2a053 in clone () at /usr/lib/libc.so.6

Thread 8 (LWP 1012 "QSGRenderThread"):
#1  0x00007f80eb1e1260 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#2  0x00007f80ec1ab0c4 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib/libQt5Core.so.5
#3  0x00007f80edde733b in  () at /usr/lib/libQt5Quick.so.5
#4  0x00007f80edde98db in  () at /usr/lib/libQt5Quick.so.5
#5  0x00007f80ec1a4eff in  () at /usr/lib/libQt5Core.so.5
#6  0x00007f80eb1db299 in start_thread () at /usr/lib/libpthread.so.0
#7  0x00007f80ebe2a053 in clone () at /usr/lib/libc.so.6

Thread 7 (LWP 943 "QQmlThread"):
#1  0x00007f80ea76f200 in g_main_context_check () at /usr/lib/libglib-2.0.so.0
#2  0x00007f80ea7c2ab2 in  () at /usr/lib/libglib-2.0.so.0
#3  0x00007f80ea76d3b1 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#4  0x00007f80ec3e56ac in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#5  0x00007f80ec38b3ac in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#6  0x00007f80ec1a3d12 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#7  0x00007f80ed9915a9 in  () at /usr/lib/libQt5Qml.so.5
#8  0x00007f80ec1a4eff in  () at /usr/lib/libQt5Core.so.5
#9  0x00007f80eb1db299 in start_thread () at /usr/lib/libpthread.so.0
#10 0x00007f80ebe2a053 in clone () at /usr/lib/libc.so.6

Thread 6 (LWP 890 "plasmas:disk$3"):
#1  0x00007f80eb1e1260 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#2  0x00007f80e49c1b3c in  () at /usr/lib/dri/iris_dri.so
#3  0x00007f80e49c0308 in  () at /usr/lib/dri/iris_dri.so
#4  0x00007f80eb1db299 in start_thread () at /usr/lib/libpthread.so.0
#5  0x00007f80ebe2a053 in clone () at /usr/lib/libc.so.6

Thread 5 (LWP 889 "plasmas:disk$2"):
#1  0x00007f80eb1e1260 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#2  0x00007f80e49c1b3c in  () at /usr/lib/dri/iris_dri.so
#3  0x00007f80e49c0308 in  () at /usr/lib/dri/iris_dri.so
#4  0x00007f80eb1db299 in start_thread () at /usr/lib/libpthread.so.0
#5  0x00007f80ebe2a053 in clone () at /usr/lib/libc.so.6

Thread 4 (LWP 888 "plasmas:disk$1"):
#1  0x00007f80eb1e1260 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#2  0x00007f80e49c1b3c in  () at /usr/lib/dri/iris_dri.so
#3  0x00007f80e49c0308 in  () at /usr/lib/dri/iris_dri.so
#4  0x00007f80eb1db299 in start_thread () at /usr/lib/libpthread.so.0
#5  0x00007f80ebe2a053 in clone () at /usr/lib/libc.so.6

Thread 3 (LWP 887 "plasmas:disk$0"):
#1  0x00007f80eb1e1260 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#2  0x00007f80e49c1b3c in  () at /usr/lib/dri/iris_dri.so
#3  0x00007f80e49c0308 in  () at /usr/lib/dri/iris_dri.so
#4  0x00007f80eb1db299 in start_thread () at /usr/lib/libpthread.so.0
#5  0x00007f80ebe2a053 in clone () at /usr/lib/libc.so.6

Thread 2 (LWP 849 "QDBusConnection"):
#1  0x00007f80ea76f200 in g_main_context_check () at /usr/lib/libglib-2.0.so.0
#2  0x00007f80ea7c2ab2 in  () at /usr/lib/libglib-2.0.so.0
#3  0x00007f80ea76d3b1 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#4  0x00007f80ec3e56ac in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#5  0x00007f80ec38b3ac in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#6  0x00007f80ec1a3d12 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#7  0x00007f80ecd11098 in  () at /usr/lib/libQt5DBus.so.5
#8  0x00007f80ec1a4eff in  () at /usr/lib/libQt5Core.so.5
#9  0x00007f80eb1db299 in start_thread () at /usr/lib/libpthread.so.0
#10 0x00007f80ebe2a053 in clone () at /usr/lib/libc.so.6

Thread 1 (LWP 789 "plasmashell"):
#1  0x00007f80eb1e1260 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#2  0x00007f80ec1ab0c4 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib/libQt5Core.so.5
#3  0x00007f80eddeb137 in  () at /usr/lib/libQt5Quick.so.5
#4  0x00007f80ede54b87 in QQuickWindow::event(QEvent*) () at /usr/lib/libQt5Quick.so.5
#5  0x00007f80ed02b752 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#6  0x00007f80ec38ca2a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#7  0x00007f80ec755319 in QPlatformWindow::windowEvent(QEvent*) () at /usr/lib/libQt5Gui.so.5
#8  0x00007f80ed032437 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#9  0x00007f80ec38ca2a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#10 0x00007f80ec3e4a15 in QTimerInfoList::activateTimers() () at /usr/lib/libQt5Core.so.5
#11 0x00007f80ec3e52fa in  () at /usr/lib/libQt5Core.so.5
#12 0x00007f80ea76eb84 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#13 0x00007f80ea7c2c21 in  () at /usr/lib/libglib-2.0.so.0
#14 0x00007f80ea76d3b1 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#15 0x00007f80ec3e5691 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#16 0x00007f80ec38b3ac in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#17 0x00007f80ec393844 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#18 0x0000562c96553069 in  ()
#19 0x00007f80ebd52b25 in __libc_start_main () at /usr/lib/libc.so.6
#20 0x0000562c965532ae in  ()
[Inferior 1 (process 789) detached]

An https://bugs.kde.org/ berichten
Comment 1 dS810 2021-02-16 09:00:26 UTC
Created attachment 135714 [details]
screencast
Comment 2 Nate Graham 2021-02-16 18:54:08 UTC
Gross, looks graphics-related
Comment 3 David Edmundson 2021-02-22 23:30:59 UTC
*** Bug 431942 has been marked as a duplicate of this bug. ***
Comment 4 Nate Graham 2021-02-24 04:48:24 UTC
*** Bug 430057 has been marked as a duplicate of this bug. ***
Comment 5 Nate Graham 2021-02-26 17:53:30 UTC
*** Bug 418084 has been marked as a duplicate of this bug. ***
Comment 6 Nate Graham 2021-06-08 19:28:38 UTC
*** Bug 438216 has been marked as a duplicate of this bug. ***
Comment 7 Nate Graham 2021-06-08 19:29:01 UTC
Number of duplicates increasing; raising priority.
Comment 8 David Edmundson 2021-07-11 22:36:33 UTC
*** Bug 439752 has been marked as a duplicate of this bug. ***
Comment 9 David Edmundson 2021-07-11 22:36:49 UTC
*** Bug 424022 has been marked as a duplicate of this bug. ***
Comment 10 David Edmundson 2021-09-26 21:35:27 UTC
*** Bug 434533 has been marked as a duplicate of this bug. ***
Comment 11 David Edmundson 2021-09-26 21:35:32 UTC
*** Bug 442409 has been marked as a duplicate of this bug. ***
Comment 12 David Edmundson 2021-09-26 21:35:36 UTC
*** Bug 442938 has been marked as a duplicate of this bug. ***
Comment 13 Nate Graham 2021-12-01 23:13:39 UTC
*** Bug 446332 has been marked as a duplicate of this bug. ***
Comment 14 Eric Kotato 2022-04-28 10:20:02 UTC
Created attachment 148429 [details]
New crash information added by DrKonqi

plasmashell (5.24.4) using Qt 5.15.3

Also happened with me on Arch. Plasma froze when I moved system tray widget from desktop to taskbar, and after a few seconds this crash happened.

-- Backtrace (Reduced):
#6  0x00007f34f3bdb150 in QSGBatchRenderer::Renderer::renderMergedBatch(QSGBatchRenderer::Batch const*) (batch=<optimized out>, this=0x7f33c003c510) at /usr/src/debug/qtdeclarative/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp:3029
#7  QSGBatchRenderer::Renderer::renderMergedBatch(QSGBatchRenderer::Batch const*) (this=0x7f33c003c510, batch=0x7f33c00adfe0) at /usr/src/debug/qtdeclarative/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp:3000
#8  0x00007f34f3bde8a6 in QSGBatchRenderer::Renderer::renderBatches() (this=this@entry=0x7f33c003c510) at /usr/src/debug/qtdeclarative/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp:4040
#9  0x00007f34f3bdee25 in QSGBatchRenderer::Renderer::render() (this=<optimized out>) at /usr/src/debug/qtdeclarative/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp:4337
#10 0x00007f34f3bcac55 in QSGRenderer::renderScene(QSGBindable const&) (bindable=<optimized out>, this=0x7f33c003c510) at /usr/src/debug/qtdeclarative/src/quick/scenegraph/coreapi/qsgrenderer.cpp:264
Comment 15 Nate Graham 2022-06-16 19:49:22 UTC
*** Bug 455387 has been marked as a duplicate of this bug. ***
Comment 16 Nate Graham 2022-08-15 18:36:55 UTC
*** Bug 457827 has been marked as a duplicate of this bug. ***
Comment 17 Nate Graham 2022-08-15 18:37:24 UTC
Raising priority due to number of duplicates.
Comment 18 Nate Graham 2022-08-17 19:52:24 UTC
*** Bug 457969 has been marked as a duplicate of this bug. ***
Comment 19 Bug Janitor Service 2022-11-11 16:09:10 UTC
A possibly relevant merge request was started @ https://invent.kde.org/frameworks/plasma-framework/-/merge_requests/649
Comment 20 Arjen Hiemstra 2022-11-14 11:53:50 UTC
Git commit 801772616953ab7017722489de0c342ac9c1ed75 by Arjen Hiemstra.
Committed on 11/11/2022 at 18:13.
Pushed by ahiemstra into branch 'master'.

declarative/core: Use two opacity nodes for fading in IconItem

There's no need to create a complete custom node with material and
shaders if all we're doing is a linear fade between the old image and
the new. Instead we can use two QSGOpacityNodes for the fading, which
gives us the same effect without the need for so much custom code.

Moreover, at least one of the duplicates of 432999 points to problems in
fadingnode, so this hopefully reduces the changes of that occuring.

M  +0    -6    src/declarativeimports/core/CMakeLists.txt
D  +0    -12   src/declarativeimports/core/fadingmaterial.frag
D  +0    -8    src/declarativeimports/core/fadingmaterial.vert
D  +0    -14   src/declarativeimports/core/fadingmaterial_core.frag
D  +0    -9    src/declarativeimports/core/fadingmaterial_core.vert
D  +0    -238  src/declarativeimports/core/fadingnode.cpp
D  +0    -38   src/declarativeimports/core/fadingnode_p.h
M  +63   -38   src/declarativeimports/core/iconitem.cpp
M  +3    -0    src/declarativeimports/core/iconitem.h
D  +0    -8    src/declarativeimports/core/shaders.qrc
D  +0    -14   src/declarativeimports/core/shaders6/CMakeLists.txt
D  +0    -21   src/declarativeimports/core/shaders6/fadingmaterial.frag
D  +0    -18   src/declarativeimports/core/shaders6/fadingmaterial.vert

https://invent.kde.org/frameworks/plasma-framework/commit/801772616953ab7017722489de0c342ac9c1ed75
Comment 21 Arjen Hiemstra 2022-11-25 11:56:07 UTC
The above fix is going to be released with plasma-framework 5.101. Hopefully, that will prevent this issue from reappearing, so I'm going to close this. Please reopen if it's not fixed.
Comment 22 David Edmundson 2023-01-03 10:27:46 UTC
*** Bug 456990 has been marked as a duplicate of this bug. ***
Comment 23 David Edmundson 2023-01-03 10:27:51 UTC
*** Bug 460709 has been marked as a duplicate of this bug. ***
Comment 24 David Edmundson 2023-01-03 10:30:21 UTC
*** Bug 463332 has been marked as a duplicate of this bug. ***
Comment 25 Niels Mayer 2023-05-22 18:21:51 UTC
Created attachment 159190 [details]
New crash information added by DrKonqi

plasmashell (5.24.7) using Qt 5.15.3

- What I was doing when the application crashed:
Moving System Monitor Sensor Widget from one display to another.
It first displays completely corrupted nonsensical text.
Then I get a notification of a plasma crash.

- Unusual behavior I noticed:
After moving System Monitor Sensor Widget, the text displayed is corrupted and unreadable gibberish.

- Custom settings of the application:

Added "System Monitor Sensor Widget" with numerous voltages, temperatures and fan speeds displayed as text.

-- Backtrace (Reduced):
#4  0x00007fec767b722e in QSGBatchRenderer::Renderer::renderMergedBatch(QSGBatchRenderer::Batch const*) () at /lib/x86_64-linux-gnu/libQt5Quick.so.5
#5  0x00007fec767bcb25 in QSGBatchRenderer::Renderer::renderBatches() () at /lib/x86_64-linux-gnu/libQt5Quick.so.5
#6  0x00007fec767bd352 in QSGBatchRenderer::Renderer::render() () at /lib/x86_64-linux-gnu/libQt5Quick.so.5
#7  0x00007fec767a4924 in QSGRenderer::renderScene(QSGBindable const&) () at /lib/x86_64-linux-gnu/libQt5Quick.so.5
#8  0x00007fec767a4df3 in QSGRenderer::renderScene(unsigned int) () at /lib/x86_64-linux-gnu/libQt5Quick.so.5