Bug 502093 - krdpserver crashes on Ctrl+C while clients are connected
Summary: krdpserver crashes on Ctrl+C while clients are connected
Status: REPORTED
Alias: None
Product: KRdp
Classification: Plasma
Component: general (show other bugs)
Version: 6.3.3
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: Unassigned bugs mailing-list
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2025-03-27 22:16 UTC by gbqofoui
Modified: 2025-04-03 23:27 UTC (History)
3 users (show)

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


Attachments
New crash information added by DrKonqi (106.97 KB, text/plain)
2025-03-27 22:16 UTC, gbqofoui
Details

Note You need to log in before you can comment on or make changes to this bug.
Description gbqofoui 2025-03-27 22:16:42 UTC
Application: krdpserver (6.3.3)

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

-- Information about the crash:
started `krdpserver -u user -p pass` from the terminal. If a client connects then the server crashes when the server is killed with Ctrl+C

The crash can be reproduced every time.

-- Backtrace (Reduced):
#5  0x0000779f2129fc28 in hw_base_encode_send_frame (avctx=<optimized out>, ctx=0x779ed834a680, frame=0x0) at libavcodec/hw_base_encode.c:507
#6  ff_hw_base_encode_receive_packet (ctx=0x779ed834a680, avctx=0x779ed805c9c0, pkt=0x779ed834c9c0) at libavcodec/hw_base_encode.c:586
#7  0x0000779f210bae7c in encode_receive_packet_internal (avctx=avctx@entry=0x779ed805c9c0, avpkt=0x779ed834c9c0) at libavcodec/encode.c:380
#8  0x0000779f210bafff in avcodec_send_frame (avctx=0x779ed805c9c0, frame=0x0) at libavcodec/encode.c:531
#9  0x0000779f25945ee4 in Encoder::finish (this=0x779ed804c790) at /usr/src/debug/kpipewire/kpipewire-6.3.3/src/encoder.cpp:162


Reported using DrKonqi
This report was filed against 'kde' because the product 'krdpserver' could not be located in Bugzilla. Add it to drkonqi's mappings file!
Comment 1 gbqofoui 2025-03-27 22:16:43 UTC
Created attachment 179796 [details]
New crash information added by DrKonqi

DrKonqi auto-attaching complete backtrace.
Comment 2 TraceyC 2025-04-03 23:24:25 UTC
Searchable backtrace

Thread 1 (Thread 0x779ee17fa6c0 (LWP 2342)):
[KCrash Handler]
#5  0x0000779f2129fc28 in hw_base_encode_send_frame (avctx=<optimized out>, ctx=0x779ed834a680, frame=0x0) at libavcodec/hw_base_encode.c:507
#6  ff_hw_base_encode_receive_packet (ctx=0x779ed834a680, avctx=0x779ed805c9c0, pkt=0x779ed834c9c0) at libavcodec/hw_base_encode.c:586
#7  0x0000779f210bae7c in encode_receive_packet_internal (avctx=avctx@entry=0x779ed805c9c0, avpkt=0x779ed834c9c0) at libavcodec/encode.c:380
#8  0x0000779f210bafff in avcodec_send_frame (avctx=0x779ed805c9c0, frame=0x0) at libavcodec/encode.c:531
#9  0x0000779f25945ee4 in Encoder::finish (this=0x779ed804c790) at /usr/src/debug/kpipewire/kpipewire-6.3.3/src/encoder.cpp:162
#10 PipeWireProduce::stateChanged (state=<optimized out>, this=0x61360eec6b20) at /usr/src/debug/kpipewire/kpipewire-6.3.3/src/pipewireproduce.cpp:310
#11 PipeWireProduce::stateChanged (this=0x61360eec6b20, state=<optimized out>) at /usr/src/debug/kpipewire/kpipewire-6.3.3/src/pipewireproduce.cpp:296
#12 0x0000779f241b1a49 in QtPrivate::QSlotObjectBase::call (this=<optimized out>, r=<optimized out>, a=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:486
#13 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4115
#14 0x0000779f223c5469 in PipeWireSourceStream::stateChanged (this=<optimized out>, _t1=<optimized out>, _t2=<optimized out>) at /usr/src/debug/kpipewire/build/src/KPipeWire_autogen/include/moc_pipewiresourcestream.cpp:245
#15 0x0000779f223b96b4 in PipeWireSourceStream::onStreamStateChanged (data=0x779ed8001510, old=PW_STREAM_STATE_STREAMING, state=PW_STREAM_STATE_PAUSED, error_message=0x0) at /usr/src/debug/kpipewire/kpipewire-6.3.3/src/pipewiresourcestream.cpp:230
#16 0x0000779f1ce9c649 in stream_set_state (stream=stream@entry=0x779ed8037970, state=state@entry=PW_STREAM_STATE_PAUSED, res=res@entry=0, error=error@entry=0x0) at ../pipewire/src/pipewire/stream.c:409
#17 0x0000779f1ce9cd14 in impl_send_command (object=0x779ed8037970, command=0x779ee17f87f0) at ../pipewire/src/pipewire/stream.c:693
#18 0x0000779efc09af27 in spa_node_send_command (object=<optimized out>, command=0x779ee17f87f0) at ../pipewire/spa/include/spa/node/node.h:688
#19 impl_node_send_command (object=0x779ed8041f38, command=0x779ee17f87f0) at ../pipewire/spa/plugins/videoconvert/videoadapter.c:1010
#20 0x0000779f1ce85f3f in spa_node_send_command (object=<optimized out>, command=0x779ee17f87f0) at ../pipewire/spa/include/spa/node/node.h:688
#21 idle_node (this=0x779ed8042340) at ../pipewire/src/pipewire/impl-node.c:292
#22 0x0000779f1ce8f950 in pw_impl_node_set_state (node=node@entry=0x779ed8042340, state=state@entry=PW_NODE_STATE_IDLE) at ../pipewire/src/pipewire/impl-node.c:2773
#23 0x0000779efc10af6c in client_node_command (_data=<optimized out>, command=0x779ed802f1e0) at ../pipewire/src/modules/module-client-node/remote-node.c:465
#24 0x0000779efc11dbb4 in client_node_demarshal_command (data=<optimized out>, msg=<optimized out>) at ../pipewire/src/modules/module-client-node/protocol-native.c:436
#25 0x0000779efc13b204 in process_remote (impl=impl@entry=0x779ed8024df0) at ../pipewire/src/modules/module-protocol-native.c:1095
#26 0x0000779efc13b8b8 in on_remote_data (data=0x779ed8024df0, fd=46, mask=1) at ../pipewire/src/modules/module-protocol-native.c:1129
#27 0x0000779f045e4d66 in loop_iterate (object=0x779ed8001978, timeout=<optimized out>) at ../pipewire/spa/plugins/support/loop.c:726
#28 0x0000779f223b9609 in spa_loop_control_iterate_fast (object=<optimized out>, timeout=0) at /usr/include/spa-0.2/spa/support/loop.h:309
#29 pw_loop_iterate (object=<optimized out>, timeout=0) at /usr/include/pipewire-0.3/pipewire/loop.h:89
#30 operator() (__closure=<optimized out>) at /usr/src/debug/kpipewire/kpipewire-6.3.3/src/pipewirecore.cpp:99
#31 operator() (__closure=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:141
#32 QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, PipeWireCore::init(int)::<lambda()> >::call(PipeWireCore::init(int)::<lambda()>&, void**)::<lambda()> > (args=<optimized out>, fn=...) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:65
#33 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, PipeWireCore::init(int)::<lambda()> >::call (f=..., arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:140
#34 QtPrivate::FunctorCallable<PipeWireCore::init(int)::<lambda()> >::call<QtPrivate::List<>, void> (f=..., arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:362
#35 QtPrivate::QCallableObject<PipeWireCore::init(int)::<lambda()>, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=<optimized out>, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:572
#36 0x0000779f241b1a49 in QtPrivate::QSlotObjectBase::call (this=<optimized out>, r=<optimized out>, a=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:486
#37 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4115
#38 0x0000779f241bbf08 in QSocketNotifier::activated (this=0x779ed8001f70, _t1=..., _t2=<optimized out>, _t3=...) at /usr/src/debug/qt6-base/build/src/corelib/Core_autogen/include/moc_qsocketnotifier.cpp:198
#39 QSocketNotifier::event (this=0x779ed8001f70, e=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qsocketnotifier.cpp:327
#40 0x0000779f252ff0ca in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x779ed8001f70, e=0x779ee17f9060) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3296
#41 0x0000779f24155b00 in QCoreApplication::notifyInternal2 (receiver=0x779ed8001f70, event=0x779ee17f9060) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1172
#42 0x0000779f243c80f1 in QCoreApplication::sendEvent (receiver=<optimized out>, event=0x779ee17f9060) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1612
#43 socketNotifierSourceDispatch (source=source@entry=0x779ed80010b0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:77
#44 0x0000779f236ec104 in g_main_dispatch (context=0x779ed8000c60) at ../glib/glib/gmain.c:3398
#45 0x0000779f2374fd57 in g_main_context_dispatch_unlocked (context=0x779ed8000c60) at ../glib/glib/gmain.c:4249
#46 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x779ed8000c60, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4314
#47 0x0000779f236eb535 in g_main_context_iteration (context=0x779ed8000c60, may_block=1) at ../glib/glib/gmain.c:4379
#48 0x0000779f243c575d in QEventDispatcherGlib::processEvents (this=0x779ed8000b70, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#49 0x0000779f241606a6 in QEventLoop::processEvents (this=0x779ee17f9330, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:103
#50 QEventLoop::exec (this=0x779ee17f9330, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:185
#51 0x0000779f24257999 in QThread::exec (this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread.cpp:590
#52 QThread::run (this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread.cpp:711
#53 0x0000779f242d8a9b in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:375
#54 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:311
#55 QThreadPrivate::start (arg=0x61360eec83e0) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:339
#56 0x0000779f246a370a in start_thread (arg=<optimized out>) at pthread_create.c:448
#57 0x0000779f24727aac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
Comment 3 TraceyC 2025-04-03 23:27:41 UTC
The crash looks to be in pipewire and Qt