Bug 501042 - Plasma crashed in PipeWireSourceStream::renegotiateModifierFailed() after closing Firefox with middle-click on task manager
Summary: Plasma crashed in PipeWireSourceStream::renegotiateModifierFailed() after clo...
Status: RESOLVED FIXED
Alias: None
Product: KPipeWire
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords: drkonqi
: 501167 (view as bug list)
Depends on:
Blocks:
 
Reported: 2025-03-04 06:57 UTC by Patrick Silva
Modified: 2025-03-07 17:37 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In: 6.3.3
Sentry Crash Report: https://crash-reports.kde.org/organizations/kde/issues/129825/events/b57a21b7ff104f43a4bf63a3f4358e79/


Attachments
New crash information added by DrKonqi (141.15 KB, text/plain)
2025-03-04 06:57 UTC, Patrick Silva
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Patrick Silva 2025-03-04 06:57:36 UTC
Application: plasmashell (6.3.2)

ApplicationNotResponding [ANR]: false
Qt Version: 6.8.2
Frameworks Version: 6.11.0
Operating System: Linux 6.13.5-arch1-1 x86_64
Windowing System: Wayland
Distribution: "Arch Linux"
DrKonqi: 6.3.2 [CoredumpBackend]

-- Information about the crash:
I closed Firefox with midle-click on its entry in the task manager, then Plasma crashed.

The reporter is unsure if this crash is reproducible.

-- Backtrace (Reduced):
#5  0x000071b825ca8608 in QSharedPointer<PipeWireCore>::data (this=<optimized out>, this=<optimized out>) at /usr/include/qt6/QtCore/qsharedpointer_impl.h:274
#6  QSharedPointer<PipeWireCore>::operator-> (this=<optimized out>, this=<optimized out>) at /usr/include/qt6/QtCore/qsharedpointer_impl.h:280
#7  PipeWireSourceStream::renegotiateModifierFailed (this=0x0, format=SPA_VIDEO_FORMAT_BGRA, modifier=72057594037927937) at /usr/src/debug/kpipewire/kpipewire-6.3.2/src/pipewiresourcestream.cpp:263
#8  0x000071b8b69a2f4a in QObject::event (this=0x65372c19d670, e=0x71b79085c890) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:1418
#9  0x000071b8b8aff0ca in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x65372c19d670, e=0x71b79085c890) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3296


Reported using DrKonqi
Comment 1 Patrick Silva 2025-03-04 06:57:38 UTC
Created attachment 179100 [details]
New crash information added by DrKonqi

DrKonqi auto-attaching complete backtrace.
Comment 2 Nate Graham 2025-03-05 16:59:19 UTC
Thread 1 (Thread 0x71b8b0477a40 (LWP 1132)):
[KCrash Handler]
#5  0x000071b825ca8608 in QSharedPointer<PipeWireCore>::data (this=<optimized out>, this=<optimized out>) at /usr/include/qt6/QtCore/qsharedpointer_impl.h:274
#6  QSharedPointer<PipeWireCore>::operator-> (this=<optimized out>, this=<optimized out>) at /usr/include/qt6/QtCore/qsharedpointer_impl.h:280
#7  PipeWireSourceStream::renegotiateModifierFailed (this=0x0, format=SPA_VIDEO_FORMAT_BGRA, modifier=72057594037927937) at /usr/src/debug/kpipewire/kpipewire-6.3.2/src/pipewiresourcestream.cpp:263
#8  0x000071b8b69a2f4a in QObject::event (this=0x65372c19d670, e=0x71b79085c890) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:1418
#9  0x000071b8b8aff0ca in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x65372c19d670, e=0x71b79085c890) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3296
#10 0x000071b8b6955b00 in QCoreApplication::notifyInternal2 (receiver=0x65372c19d670, event=event@entry=0x71b79085c890) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1172
#11 0x000071b8b6955edc in QCoreApplication::sendEvent (receiver=<optimized out>, event=0x71b79085c890) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1612
#12 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x653721333790) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1946
#13 0x000071b8b6bc859c in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1800
#14 postEventSourceDispatch (s=0x65372133bf90) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:246
#15 0x000071b8b55c1919 in g_main_dispatch (context=0x71b8a8000f00) at ../glib/glib/gmain.c:3357
#16 0x000071b8b56245d7 in g_main_context_dispatch_unlocked (context=0x71b8a8000f00) at ../glib/glib/gmain.c:4208
#17 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x71b8a8000f00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4273
#18 0x000071b8b55c0e15 in g_main_context_iteration (context=0x71b8a8000f00, may_block=1) at ../glib/glib/gmain.c:4338
#19 0x000071b8b6bc575d in QEventDispatcherGlib::processEvents (this=0x65372133c710, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#20 0x000071b8b69606a6 in QEventLoop::processEvents (this=0x7fff95893e80, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:103
#21 QEventLoop::exec (this=0x7fff95893e80, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:185
#22 0x000071b8b69591d6 in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/corelib/global/qflags.h:74
#23 0x000071b8b8afaf9a in QApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2564
#24 0x00006536e24c61cb in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma-workspace/plasma-workspace-6.3.2/shell/main.cpp:191
Comment 3 Nate Graham 2025-03-05 17:02:32 UTC
It's crashing here:

if (d->pwCore->serverVersion() >= kDropSingleModifierMinVersion) {

Maybe d->pwCore is null at this point?
Comment 4 Nate Graham 2025-03-07 17:17:33 UTC
*** Bug 501167 has been marked as a duplicate of this bug. ***
Comment 5 Nate Graham 2025-03-07 17:24:17 UTC
Git commit 4857109ab3af178222e53e65cfad20374afd28aa by Nate Graham, on behalf of Harald Sitter.
Committed on 07/03/2025 at 17:24.
Pushed by ngraham into branch 'master'.

sourceitem: invoke method with correct context object

m_stream may get reset before the queued invocation happens.
contextualize the invocation to the stream rather than this (which does
potentially live longer than stream)
FIXED-IN: 6.3.3

M  +6    -3    src/pipewiresourceitem.cpp

https://invent.kde.org/plasma/kpipewire/-/commit/4857109ab3af178222e53e65cfad20374afd28aa
Comment 6 Nate Graham 2025-03-07 17:37:56 UTC
Git commit 1263fad06a47d4178280a14b170ca7b1f25007af by Nate Graham.
Committed on 07/03/2025 at 17:24.
Pushed by ngraham into branch 'Plasma/6.3'.

sourceitem: invoke method with correct context object

m_stream may get reset before the queued invocation happens.
contextualize the invocation to the stream rather than this (which does
potentially live longer than stream)
FIXED-IN: 6.3.3


(cherry picked from commit 4857109ab3af178222e53e65cfad20374afd28aa)

d908438e sourceitem: invoke method with correct context object

Co-authored-by: Harald Sitter <sitter@kde.org>

M  +6    -3    src/pipewiresourceitem.cpp

https://invent.kde.org/plasma/kpipewire/-/commit/1263fad06a47d4178280a14b170ca7b1f25007af