Bug 483681 - Crash in KWin::ScreenCastStream::onStreamAddBuffer()
Summary: Crash in KWin::ScreenCastStream::onStreamAddBuffer()
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: screencasting (other bugs)
Version First Reported In: git master
Platform: Other Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: qt6
Depends on:
Blocks:
 
Reported: 2024-03-15 15:20 UTC by Jakob Petsovits
Modified: 2024-05-15 09:55 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jakob Petsovits 2024-03-15 15:20:37 UTC
SUMMARY
kwin_wayland (post-6.0.2, commit a2867666) just crashed on me. I was just submitting a comment on Invent and moving the mouse cursor away from the button after doing so. Don't remember alt-tabbing but it's possible that I did, given the reference to ScreenCastStream?

Possible duplicate of Bug 458117 which was closed as WORKSFORME back in Plasma 5.25.4 days. I have a better stack trace though.


STEPS TO REPRODUCE
Has not been crashing for a few minutes following the automatic restart & recovery, not sure how to reproduce.

OBSERVED RESULT
Crash, restart & recovery.

SOFTWARE/OS VERSIONS
Operating System: Arch Linux 
KDE Plasma Version: 6.0.80 (kwin commit a2867666)
KDE Frameworks Version: 6.0.0
Qt Version: 6.6.2
Kernel Version: 6.7.9-arch1-1 (64-bit)
Graphics Platform: Wayland
Processors: 8 × Intel® Core™ i7-8565U CPU @ 1.80GHz
Memory: 15.3 GiB of RAM
Graphics Processor: Mesa Intel® UHD Graphics 620
Manufacturer: LENOVO
Product Name: 20QD001VUS
System Version: ThinkPad X1 Carbon 7th


ADDITIONAL INFORMATION

journalctl shows this assertion, with nothing immediately preceding it:

Mar 15 10:16:55 quint kwin_wayland[817]: ASSERT: "buffer->buffer->n_datas >= uint(dmabufAttribs->planeCount)" in file /home/kpetso/src/kde/plasma/kwin/src/plugins/screencast/screencaststream.cpp, line 234

I had previously woken up from suspend, plugged and unplugged my monitor. The last block of logs from kwin_wayland, from a few minutes earlier, were these:

Mar 15 10:11:20 quint kwin_wayland[817]: This plugin does not support raise()
Mar 15 10:11:20 quint kwin_wayland[817]: OpenGL vendor string:                   Intel
Mar 15 10:11:20 quint kwin_wayland[817]: OpenGL renderer string:                 Mesa Intel(R) UHD Graphics 620 (WHL GT2)
Mar 15 10:11:20 quint kwin_wayland[817]: OpenGL version string:                  4.6 (Core Profile) Mesa 24.0.2-arch1.2
Mar 15 10:11:20 quint kwin_wayland[817]: OpenGL shading language version string: 4.60
Mar 15 10:11:20 quint kwin_wayland[817]: Driver:                                 Intel
Mar 15 10:11:20 quint kwin_wayland[817]: GPU class:                              Whiskey Lake
Mar 15 10:11:20 quint kwin_wayland[817]: OpenGL version:                         4.6
Mar 15 10:11:20 quint kwin_wayland[817]: GLSL version:                           4.60
Mar 15 10:11:20 quint kwin_wayland[817]: Mesa version:                           24.0.2
Mar 15 10:11:20 quint kwin_wayland[817]: Requires strict binding:                no
Mar 15 10:11:20 quint kwin_wayland[817]: Virtual Machine:                        no
Mar 15 10:11:20 quint kwin_wayland[817]: kwin_scene_opengl: 0x1: GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)
Mar 15 10:11:20 quint kwin_wayland[817]: kwin_scene_opengl: 0x1: GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)
Mar 15 10:11:20 quint kwin_wayland[817]: kwin_scene_opengl: 0x1: GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)

Apparently the stack traces for all threads are pushing this description past the character limit. I'll start with just the crashing thread and post the remaining ones into another comment (or several) below. As provided by `coredumpctl debug`, with debuginfod enabled:

(gdb) thread apply all bt

[...]

Thread 1 (Thread 0x716c2854e440 (LWP 817)):
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x0000716c2d0ab393 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2  0x0000716c2d05a6c8 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x0000716c2d0424b8 in __GI_abort () at abort.c:79
#4  0x0000716c2d68a924 in qAbort () at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/global/qglobal.cpp:161
#5  qt_message_fatal<QString&> (message=..., context=<optimized out>) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/global/qlogging.cpp:2030
#6  qt_message(QtMsgType, const QMessageLogContext &, const char *, typedef __va_list_tag __va_list_tag *) (msgType=msgType@entry=QtFatalMsg, context=..., msg=<optimized out>, ap=ap@entry=0x7fff41dc32d0) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/global/qlogging.cpp:378
#7  0x0000716c2d68b135 in QMessageLogger::fatal (this=<optimized out>, msg=<optimized out>) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/global/qlogging.cpp:901
#8  0x0000716c2d689770 in qt_assert (assertion=<optimized out>, file=<optimized out>, line=<optimized out>) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/global/qassert.cpp:68
#9  0x0000716c1ffd0e3b in KWin::ScreenCastStream::onStreamAddBuffer (this=0x5b0c07708e80, buffer=0x5b0c07b7c3b8) at /home/kpetso/src/kde/plasma/kwin/src/plugins/screencast/screencaststream.cpp:234
#10 0x0000716c1ffd1705 in operator() (__closure=0x0, data=0x5b0c07708e80, buffer=0x5b0c07b7c3b8) at /home/kpetso/src/kde/plasma/kwin/src/plugins/screencast/screencaststream.cpp:324
#11 0x0000716c1ffd172d in _FUN () at /home/kpetso/src/kde/plasma/kwin/src/plugins/screencast/screencaststream.cpp:325
#12 0x0000716c17da2783 in ??? () at /usr/lib/libpipewire-0.3.so.0
#13 0x0000716c17d9a3cb in pw_impl_port_use_buffers () at /usr/lib/libpipewire-0.3.so.0
#14 0x0000716c1ff30a96 in ??? () at /usr/lib/pipewire-0.3/libpipewire-module-client-node.so
#15 0x0000716c1ff3f9b7 in ??? () at /usr/lib/pipewire-0.3/libpipewire-module-client-node.so
#16 0x0000716c1ff76162 in ??? () at /usr/lib/pipewire-0.3/libpipewire-module-protocol-native.so
#17 0x0000716c1ff76940 in ??? () at /usr/lib/pipewire-0.3/libpipewire-module-protocol-native.so
#18 0x0000716c24034646 in ??? () at /usr/lib/spa-0.2/support/libspa-support.so
#19 0x0000716c1ffc07fa in operator() (__closure=0x5b0c0614abb0) at /home/kpetso/src/kde/plasma/kwin/src/plugins/screencast/pipewirecore.cpp:67
#20 0x0000716c1ffc159f in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::PipeWireCore::init()::<lambda()> >::call(struct {...} &, void **) (f=..., arg=0x7fff41dc46d0) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:137
#21 0x0000716c1ffc1571 in QtPrivate::Functor<KWin::PipeWireCore::init()::<lambda()>, 0>::call<QtPrivate::List<>, void>(struct {...} &, void *, void **) (f=..., arg=0x7fff41dc46d0) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:339
#22 0x0000716c1ffc1528 in QtPrivate::QCallableObject<KWin::PipeWireCore::init()::<lambda()>, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x5b0c0614aba0, r=0x5b0c0618dd40, a=0x7fff41dc46d0, ret=0x0) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:522
#23 0x0000716c2d790ca9 in QtPrivate::QSlotObjectBase::call (a=0x7fff41dc46d0, r=0x5b0c0618dd40, this=0x5b0c0614aba0, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qobjectdefs_impl.h:433
#24 doActivate<false> (sender=0x5b0c0614ab80, signal_index=3, argv=0x7fff41dc46d0) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qobject.cpp:4039
#25 0x0000716c2d798530 in QSocketNotifier::activated (_t3=..., _t2=<optimized out>, _t1=..., this=0x5b0c0614ab80) at /usr/src/debug/qt6-base/build/src/corelib/Core_autogen/include/moc_qsocketnotifier.cpp:231
#26 QSocketNotifier::event (this=0x5b0c0614ab80, e=<optimized out>) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qsocketnotifier.cpp:326
#27 0x0000716c2e8f438b in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x5b0c0614ab80, e=0x7fff41dc47d0) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/widgets/kernel/qapplication.cpp:3296
#28 0x0000716c2d739818 in QCoreApplication::notifyInternal2 (receiver=0x5b0c0614ab80, event=0x7fff41dc47d0) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qcoreapplication.cpp:1121
#29 0x0000716c2d89e749 in QCoreApplication::sendEvent (event=0x7fff41dc47d0, receiver=<optimized out>) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qcoreapplication.cpp:1539
#30 QEventDispatcherUNIXPrivate::activateSocketNotifiers (this=this@entry=0x5b0c05ce2c10) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qeventdispatcher_unix.cpp:267
#31 0x0000716c2d89fbac in QEventDispatcherUNIX::processEvents (this=<optimized out>, flags=..., flags@entry=...) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qeventdispatcher_unix.cpp:476
#32 0x0000716c2e1b26e2 in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/gui/platform/unix/qunixeventdispatcher.cpp:27
#33 0x0000716c2d743d6e in QEventLoop::processEvents (flags=..., this=0x7fff41dc49b0) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qeventloop.cpp:100
#34 QEventLoop::exec (this=0x7fff41dc49b0, flags=...) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qeventloop.cpp:182
#35 0x0000716c2d73c2b8 in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/global/qflags.h:74
#36 0x00005b0c047eb154 in main (argc=14, argv=0x7fff41dc50b8) at /home/kpetso/src/kde/plasma/kwin/src/main_wayland.cpp:634
Comment 1 Jakob Petsovits 2024-03-15 15:27:18 UTC
Actually I'll leave out the other threads because they're all just waiting for condition variables, polling, and such. Nothing that seems directly related on first glance. It seems I have access to some actual heap data too though:

(gdb) frame 9
#9  0x0000716c1ffd0e3b in KWin::ScreenCastStream::onStreamAddBuffer (this=0x5b0c07708e80, buffer=0x5b0c07b7c3b8) at /home/kpetso/src/kde/plasma/kwin/src/plugins/screencast/screencaststream.cpp:234
234             Q_ASSERT(buffer->buffer->n_datas >= uint(dmabufAttribs->planeCount));
(gdb) print buffer->buffer->n_datas
$1 = 1
(gdb) print dmabufAttribs->planeCount
$2 = 2

Let me know if you're interested in any other data!
Comment 2 Bug Janitor Service 2024-04-08 10:16:03 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/5577
Comment 3 Bug Janitor Service 2024-04-08 10:42:27 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/5578
Comment 5 Vlad Zahorodnii 2024-04-08 16:45:28 UTC
Git commit 81ef5d3500f14c2eb1d39973f0a59bf8da3dd7dc by Vlad Zahorodnii.
Committed on 08/04/2024 at 10:39.
Pushed by vladz into branch 'Plasma/6.0'.

plugins/screencast: Add a n_datas guard

There's a crash in the onStreamAddBuffer() function. It's not totally
clear why the crash happens when accessing `chunk`.

This MR is a blind attempt to confirm that the crash is caused by wrong
n_datas value.

M  +16   -13   src/plugins/screencast/screencaststream.cpp

https://invent.kde.org/plasma/kwin/-/commit/81ef5d3500f14c2eb1d39973f0a59bf8da3dd7dc
Comment 6 Jakob Petsovits 2024-05-08 21:42:49 UTC
I hit this again. The code changed a bit since last time, but the assertion and n_datas vs. planeCount values are similar. Let's add some extra info from my new stack trace.

(gdb) bt
#0  0x0000716603aab32c in ??? () at /usr/lib/libc.so.6
#1  0x0000716603a5a6c8 in raise () at /usr/lib/libc.so.6
#2  0x0000716603a424b8 in abort () at /usr/lib/libc.so.6
#3  0x000071660408c6ac in ??? () at /usr/lib/libQt6Core.so.6
#4  0x000071660408cebd in QMessageLogger::fatal(char const*, ...) const () at /usr/lib/libQt6Core.so.6
#5  0x000071660408cf1a in qt_assert(char const*, char const*, int) () at /usr/lib/libQt6Core.so.6
#6  0x00007165f7f2ce85 in KWin::DmaBufScreenCastBuffer::create (pwBuffer=0x64d609f57e10, options=...) at /home/kpetso/src/kde/plasma/kwin/src/plugins/screencast/screencastbuffer.cpp:68
#7  0x00007165f7f38496 in KWin::ScreenCastStream::onStreamAddBuffer (this=0x64d6086b5d00, pwBuffer=0x64d609f57e10) at /home/kpetso/src/kde/plasma/kwin/src/plugins/screencast/screencaststream.cpp:218
#8  0x00007165f7f38641 in operator() (__closure=0x0, data=0x64d6086b5d00, buffer=0x64d609f57e10) at /home/kpetso/src/kde/plasma/kwin/src/plugins/screencast/screencaststream.cpp:262
#9  0x00007165f7f38669 in _FUN () at /home/kpetso/src/kde/plasma/kwin/src/plugins/screencast/screencaststream.cpp:263
#10 0x00007165f5ba146b in impl_port_use_buffers (object=0x64d609f579d0, direction=<optimized out>, port_id=<optimized out>, flags=<optimized out>, buffers=<optimized out>, n_buffers=<optimized out>) at ../pipewire/src/pipewire/stream.c:1023
#11 0x00007165f5b98f5b in negotiate_mixer_buffers (n_buffers=3, buffers=0x7ffde3c4fba0, flags=<optimized out>, port=0x64d609d79c90) at ../pipewire/src/pipewire/impl-port.c:1818
#12 pw_impl_port_use_buffers (port=0x64d609d79c90, mix=mix@entry=0x64d60a2fba58, flags=flags@entry=1, buffers=buffers@entry=0x7ffde3c4fba0, n_buffers=n_buffers@entry=3) at ../pipewire/src/pipewire/impl-port.c:1860
#13 0x00007165f5b138e6 in client_node_port_use_buffers (_data=<optimized out>, direction=<optimized out>, port_id=<optimized out>, mix_id=<optimized out>, flags=<optimized out>, n_buffers=<optimized out>, buffers=<optimized out>) at ../pipewire/src/modules/module-client-node/remote-node.c:719
#14 0x00007165f5b22bc7 in client_node_demarshal_port_use_buffers (data=<optimized out>, msg=<optimized out>) at ../pipewire/src/modules/module-client-node/protocol-native.c:572
#15 0x00007165f7ebc162 in process_remote (impl=impl@entry=0x64d6086aaf90) at ../pipewire/src/modules/module-protocol-native.c:1037
#16 0x00007165f7ebc940 in on_remote_data (data=0x64d6086aaf90, fd=51, mask=1) at ../pipewire/src/modules/module-protocol-native.c:1071
#17 0x00007165f7efc646 in loop_iterate (object=0x64d6088f0a88, timeout=<optimized out>) at ../pipewire/spa/plugins/support/loop.c:496
#18 0x00007165f7f27412 in operator() (__closure=0x64d6086f19e0) at /home/kpetso/src/kde/plasma/kwin/src/plugins/screencast/pipewirecore.cpp:67
#19 0x00007165f7f281b7 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::PipeWireCore::init()::<lambda()> >::call(struct {...} &, void **) (f=..., arg=0x7ffde3c50590) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:137
#20 0x00007165f7f28189 in QtPrivate::FunctorCallable<KWin::PipeWireCore::init()::<lambda()> >::call<QtPrivate::List<>, void>(struct {...} &, void *, void **) (f=..., arg=0x7ffde3c50590) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:345
#21 0x00007165f7f28140 in QtPrivate::QCallableObject<KWin::PipeWireCore::init()::<lambda()>, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x64d6086f19d0, r=0x64d6086c1c80, a=0x7ffde3c50590, ret=0x0) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:555
#22 0x0000716604197679 in ??? () at /usr/lib/libQt6Core.so.6
#23 0x00007166041a05ea in QSocketNotifier::event(QEvent*) () at /usr/lib/libQt6Core.so.6
#24 0x00007166052fbfcb in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt6Widgets.so.6
#25 0x000071660413db38 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt6Core.so.6
#26 0x00007166042ac689 in QEventDispatcherUNIXPrivate::activateSocketNotifiers() () at /usr/lib/libQt6Core.so.6
#27 0x00007166042b262b in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Core.so.6
#28 0x0000716604bc1472 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Gui.so.6
#29 0x0000716604145cce in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Core.so.6
#30 0x0000716604141738 in QCoreApplication::exec() () at /usr/lib/libQt6Core.so.6
#31 0x000064d606484830 in main (argc=14, argv=0x7ffde3c50f78) at /home/kpetso/src/kde/plasma/kwin/src/main_wayland.cpp:634

(gdb) frame 6
#6  0x00007165f7f2ce85 in KWin::DmaBufScreenCastBuffer::create (pwBuffer=0x64d609f57e10, options=...) at /home/kpetso/src/kde/plasma/kwin/src/plugins/screencast/screencastbuffer.cpp:68
68          Q_ASSERT(pwBuffer->buffer->n_datas >= uint(attrs->planeCount));
(gdb) print pwBuffer->buffer->n_datas
$1 = 1
(gdb) print attrs->planeCount
$2 = 2

So far, so similar. I'm noticing that the pipewire code locations are also included this time (Arch package: pipewire 1:1.0.5-1).

Pressing on.

(gdb) print *pwBuffer
$3 = {buffer = 0x64d609e0d730, user_data = 0x0, size = 0, requested = 0, time = 0}
(gdb) print *pwBuffer->buffer
$4 = {n_metas = 1, n_datas = 1, metas = 0x64d609e0d748, datas = 0x64d609e0d758}
(gdb) print *pwBuffer->buffer->datas
$5 = {type = 12, flags = 0, fd = -1, mapoffset = 0, maxsize = 0, data = 0xd1c10020, chunk = 0x7165ec3eb008}

(gdb) frame 7
#7  0x00007165f7f38496 in KWin::ScreenCastStream::onStreamAddBuffer (this=0x64d6086b5d00, pwBuffer=0x64d609f57e10) at /home/kpetso/src/kde/plasma/kwin/src/plugins/screencast/screencaststream.cpp:218
218             if (auto dmabuf = DmaBufScreenCastBuffer::create(pwBuffer, GraphicsBufferOptions{
(gdb) print m_dmabufParams
$8 = std::optional = {[contained value] = {planeCount = 2, width = 800, height = 1021, format = 875713089, modifier = 72057594037927940}}
(gdb) print m_videoFormat
$9 = {format = SPA_VIDEO_FORMAT_BGRA, flags = 4, modifier = 72057594037927940, size = {width = 800, height = 1021}, framerate = {num = 0, denom = 1}, max_framerate = {num = 59, denom = 1}, views = 299, interlace_mode = 1048, pixel_aspect_ratio = {num = 1619, denom = 1016}, multiview_mode = 1684, multiview_flags = (SPA_VIDEO_MULTIVIEW_FLAGS_RIGHT_FLIPPED | SPA_VIDEO_MULTIVIEW_FLAGS_RIGHT_FLOPPED | unknown: 0x400), chroma_site = 234, color_range = (SPA_VIDEO_COLOR_RANGE_0_255 | unknown: 0x418), color_matrix = 1684, transfer_function = 1079, color_primaries = SPA_VIDEO_COLOR_PRIMARIES_UNKNOWN}

The coredump will probably stick around for a few more days, I can post more info if you tell me what to look for.
Comment 7 Jakob Petsovits 2024-05-08 21:53:37 UTC
Maybe one more.

(gdb) frame 6
#6  0x00007165f7f2ce85 in KWin::DmaBufScreenCastBuffer::create (pwBuffer=0x64d609f57e10, options=...) at /home/kpetso/src/kde/plasma/kwin/src/plugins/screencast/screencastbuffer.cpp:68
68          Q_ASSERT(pwBuffer->buffer->n_datas >= uint(attrs->planeCount));
(gdb) print *attrs
$11 = {planeCount = 2, width = 800, height = 1021, format = 875713089, modifier = 72057594037927940, fd = {_M_elems = {{m_fd = 274}, {m_fd = 276}, {m_fd = -1}, {m_fd = -1}}}, offset = {_M_elems = {0, 3276800, 0, 0}}, pitch = {_M_elems = {3200, 128, 0, 0}}}
Comment 8 Vlad Zahorodnii 2024-05-15 09:55:55 UTC
Added a guard in master. The same guard already exists in Plasma/6.0 and it seems like it has "fixed" the crash