Bug 483044 - Plasmashell crashes in PipeWireSourceStream::~PipeWireSourceStream() after relogin
Summary: Plasmashell crashes in PipeWireSourceStream::~PipeWireSourceStream() after re...
Status: REPORTED
Alias: None
Product: KPipeWire
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: unspecified
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords: drkonqi, qt6
: 489532 (view as bug list)
Depends on:
Blocks:
 
Reported: 2024-03-09 22:27 UTC by Andreas Hencke
Modified: 2024-10-22 18:15 UTC (History)
5 users (show)

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


Attachments
New crash information added by DrKonqi (176.94 KB, text/plain)
2024-03-09 22:27 UTC, Andreas Hencke
Details
New crash report, looks different to my first (114.53 KB, text/plain)
2024-10-18 07:40 UTC, Andreas Hencke
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Andreas Hencke 2024-03-09 22:27:15 UTC
Application: plasmashell (6.0.1)

Qt Version: 6.6.2
Frameworks Version: 6.0.0
Operating System: Linux 6.7.9-arch1-1 x86_64
Windowing System: Wayland
Distribution: "Arch Linux"
DrKonqi: 6.0.1 [CoredumpBackend]

-- Information about the crash:
The screen was locked after a period of inactivity. After login plasmashell crashed immediatelly .

The crash can be reproduced sometimes.

-- Backtrace (Reduced):
#5  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#6  0x000076890e6ab393 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#7  0x000076890e65a6c8 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#8  0x000076890e6424b8 in __GI_abort () at abort.c:79
#9  0x000076890e643395 in __libc_message_impl (fmt=fmt@entry=0x76890e7bb2ea "%s\n") at ../sysdeps/posix/libc_fatal.c:132


Reported using DrKonqi
Comment 1 Andreas Hencke 2024-03-09 22:27:16 UTC
Created attachment 166833 [details]
New crash information added by DrKonqi

DrKonqi auto-attaching complete backtrace.
Comment 2 Nicolas Fella 2024-03-10 13:22:08 UTC
#5  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#6  0x000076890e6ab393 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#7  0x000076890e65a6c8 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#8  0x000076890e6424b8 in __GI_abort () at abort.c:79
#9  0x000076890e643395 in __libc_message_impl (fmt=fmt@entry=0x76890e7bb2ea "%s\n") at ../sysdeps/posix/libc_fatal.c:132
#10 0x000076890e6b52a7 in malloc_printerr (str=str@entry=0x76890e7be488 "double free or corruption (!prev)") at malloc.c:5772
#11 0x000076890e6b737c in _int_free_merge_chunk (av=av@entry=0x76890e7f6ac0 <main_arena>, p=0x5d78a6505310, size=272) at malloc.c:4679
#12 0x000076890e6b7669 in _int_free (av=0x76890e7f6ac0 <main_arena>, p=<optimized out>, have_lock=<optimized out>, have_lock@entry=0) at malloc.c:4646
#13 0x000076890e6b9e93 in __GI___libc_free (mem=<optimized out>) at malloc.c:3398
#14 0x00007688f3f9431d in pw_array_clear (arr=0x5d78a7ef1878) at ../pipewire/src/pipewire/array.h:80
#15 pw_properties_free (properties=0x5d78a7ef1860) at ../pipewire/src/pipewire/properties.c:359
#16 pw_properties_free (properties=0x5d78a7ef1860) at ../pipewire/src/pipewire/properties.c:350
#17 0x00007688f3fa528f in pw_stream_destroy (stream=0x5d78a8d76820) at ../pipewire/src/pipewire/stream.c:1701
#18 0x00007688f8c9cddb in PipeWireSourceStream::~PipeWireSourceStream (this=0x5d78a8b26000, this=<optimized out>) at /usr/include/qt6/QtCore/qscopedpointer.h:90
#19 0x00007688f8ca5bd2 in PipeWireSourceStream::~PipeWireSourceStream (this=0x5d78a8b26000, this=<optimized out>) at /usr/src/debug/kpipewire/kpipewire-6.0.1.1/src/pipewiresourcestream.cpp:358
#20 QScopedPointerDeleter<PipeWireSourceStream>::cleanup (pointer=0x5d78a8b26000) at /usr/include/qt6/QtCore/qscopedpointer.h:24
#21 QScopedPointer<PipeWireSourceStream, QScopedPointerDeleter<PipeWireSourceStream> >::reset (other=0x0, this=<optimized out>) at /usr/include/qt6/QtCore/qscopedpointer.h:125
#22 PipeWireSourceItem::refresh (this=0x5d78a725c0d0) at /usr/src/debug/kpipewire/kpipewire-6.0.1.1/src/pipewiresourceitem.cpp:166
#23 0x00007688f8ca610f in PipeWireSourceItem::setNodeId (this=0x5d78a725c0d0, nodeId=0) at /usr/src/debug/kpipewire/kpipewire-6.0.1.1/src/pipewiresourceitem.cpp:199
#24 0x000076890fe31298 in QQmlPropertyData::writeProperty (this=<optimized out>, target=<optimized out>, value=<optimized out>, flags=...) at /usr/src/debug/qt6-declarative/qtdeclarative-everywhere-src-6.6.2/src/qml/qml/qqmlpropertydata_p.h:298
#25 0x000076890feecc69 in tryConvertAndAssign (isUrl=<optimized out>, variantMetaType=..., propertyMetaType=..., flags=..., value=<optimized out>, property=<optimized out>, object=<optimized out>) at /usr/src/debug/qt6-declarative/qtdeclarative-everywhere-src-6.6.2/src/qml/qml/qqmlproperty.cpp:1416
#26 QQmlPropertyPrivate::write (object=0x5d78a725c0d0, property=..., value=..., context=..., flags=...) at /usr/src/debug/qt6-declarative/qtdeclarative-everywhere-src-6.6.2/src/qml/qml/qqmlproperty.cpp:1555
#27 0x000076890fe4442a in QQmlBinding::slowWrite (this=this@entry=0x5d78a6757a80, core=..., valueTypeData=..., result=..., isUndefined=isUndefined@entry=false, flags=..., flags@entry=...) at /usr/src/debug/qt6-declarative/qtdeclarative-everywhere-src-6.6.2/src/qml/qml/qqmlbinding.cpp:540
#28 0x000076890fe3d08d in GenericBinding<0>::write (this=0x5d78a6757a80, result=..., isUndefined=false, flags=...) at /usr/src/debug/qt6-declarative/qtdeclarative-everywhere-src-6.6.2/src/qml/qml/qqmlbinding.cpp:268
#29 0x000076890fe452ea in QQmlBinding::doUpdate (this=0x5d78a6757a80, watcher=..., flags=..., scope=...) at /usr/src/debug/qt6-declarative/qtdeclarative-everywhere-src-6.6.2/src/qml/qml/qqmlbinding.cpp:700
#30 0x000076890fe43d04 in QQmlBinding::update (this=0x5d78a6757a80, flags=...) at /usr/src/debug/qt6-declarative/qtdeclarative-everywhere-src-6.6.2/src/qml/qml/qqmlbinding.cpp:164
#31 0x000076890fed1217 in QQmlNotifier::emitNotify (endpoint=<optimized out>, a=0x7fff59d9e9d0) at /usr/src/debug/qt6-declarative/qtdeclarative-everywhere-src-6.6.2/src/qml/qml/qqmlnotifier.cpp:70
#32 0x000076890ed90ada in doActivate<false> (sender=0x7688f40041b0, signal_index=3, argv=0x7fff59d9e9d0) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qobject.cpp:3931
#33 0x00007688f9664ed4 in ScreencastingRequest::nodeIdChanged (_t1=<optimized out>, this=0x7688f40041b0) at /usr/src/debug/plasma-workspace/build/libtaskmanager/declarative/taskmanagerplugin_autogen/EWIEGA46WW/moc_screencastingrequest.cpp:248
#34 ScreencastingRequest::setNodeid (this=0x7688f40041b0, nodeId=0) at /usr/src/debug/plasma-workspace/plasma-workspace-6.0.1/libtaskmanager/declarative/screencastingrequest.cpp:100
#35 0x000076890ed90ca9 in QtPrivate::QSlotObjectBase::call (a=0x7fff59d9ea98, r=0x7688f40041b0, this=0x5d78a6522960, 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
#36 doActivate<false> (sender=0x5d78a8284e10, signal_index=5, argv=0x7fff59d9ea98) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qobject.cpp:4039
#37 0x000076890ea93596 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#38 0x000076890ea9000e in ffi_call_int (cif=cif@entry=0x7fff59d9eca0, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=closure@entry=0x0) at ../src/x86/ffi64.c:673
#39 0x000076890ea92bd3 in ffi_call (cif=cif@entry=0x7fff59d9eca0, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7fff59d9ed70) at ../src/x86/ffi64.c:710
#40 0x0000768911419645 in wl_closure_invoke (closure=closure@entry=0x7688f4025580, target=<optimized out>, target@entry=0x5d78a725ee70, opcode=opcode@entry=0, data=<optimized out>, flags=1) at ../wayland-1.22.0/src/connection.c:1025
#41 0x0000768911419e73 in dispatch_event (display=display@entry=0x5d78a54ee350, queue=0x5d78a54ee440) at ../wayland-1.22.0/src/wayland-client.c:1631
#42 0x000076891141a13c in dispatch_queue (queue=0x5d78a54ee440, display=0x5d78a54ee350) at ../wayland-1.22.0/src/wayland-client.c:1777
#43 wl_display_dispatch_queue_pending (display=0x5d78a54ee350, queue=0x5d78a54ee440) at ../wayland-1.22.0/src/wayland-client.c:2019
#44 0x000076891097e98e in QtWaylandClient::EventThread::readAndDispatchEvents (this=0x5d78a55406c0) at /usr/src/debug/qt6-wayland/qtwayland-everywhere-src-6.6.2/src/client/qwaylanddisplay.cpp:229
#45 0x000076890ed90fab in doActivate<false> (sender=0x5d78a5539e10, signal_index=4, argv=0x7fff59d9efa8) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qobject.cpp:4051
#46 0x000076890ef73a0c in QAbstractEventDispatcher::awake (this=0x5d78a5539e10) at /usr/src/debug/qt6-base/build/src/corelib/Core_autogen/include/moc_qabstracteventdispatcher.cpp:182
#47 QEventDispatcherGlib::processEvents (this=0x5d78a5539e10, flags=...) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qeventdispatcher_glib.cpp:400
#48 0x000076890ed43d6e in QEventLoop::processEvents (flags=..., this=0x7fff59d9f0f0) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qeventloop.cpp:100
#49 QEventLoop::exec (this=0x7fff59d9f0f0, flags=...) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qeventloop.cpp:182
#50 0x000076890ed3c2b8 in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/global/qflags.h:74
#51 0x0000768910af0f0a in QApplication::exec () at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/widgets/kernel/qapplication.cpp:2574
#52 0x00005d78a3dc0486 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma-workspace/plasma-workspace-6.0.1/shell/main.cpp:214
Comment 3 Nate Graham 2024-03-12 00:01:36 UTC
Were you doing any screencasting or screen recording before you logged out?
Comment 4 Andreas Hencke 2024-03-12 03:56:40 UTC
@Nate Graham: No, I did nothing like that.
Comment 5 Akseli Lahtinen 2024-06-14 12:16:50 UTC
It could be also the preview windows in task manager, i think those use pipewire.
Comment 6 Nate Graham 2024-06-14 20:56:04 UTC
Yep, they do. In fact the backtrace indicates that the Task Manager requested it here:

#33 0x00007688f9664ed4 in ScreencastingRequest::nodeIdChanged (_t1=<optimized out>, this=0x7688f40041b0) at /usr/src/debug/plasma-workspace/build/libtaskmanager/declarative/taskmanagerplugin_autogen/EWIEGA46WW/moc_screencastingrequest.cpp:248
#34 ScreencastingRequest::setNodeid (this=0x7688f40041b0, nodeId=0) at /usr/src/debug/plasma-workspace/plasma-workspace-6.0.1/libtaskmanager/declarative/screencastingrequest.cpp:100

Moving to KPipeWire.
Comment 7 Akseli Lahtinen 2024-07-02 08:16:11 UTC
*** Bug 489532 has been marked as a duplicate of this bug. ***
Comment 8 Andreas Hencke 2024-10-18 07:40:49 UTC Comment hidden (spam)
Comment 9 Nate Graham 2024-10-22 16:29:57 UTC
That is indeed different and unrelated, yeah.
Comment 10 Andreas Hencke 2024-10-22 17:31:24 UTC
Unrelated? So I've to file a new bug report next time plasmashell crashes.
Comment 11 Nate Graham 2024-10-22 18:15:04 UTC
If the crash has a different backtrace, yes.