Bug 508155

Summary: kioworker crash when FTP server dies
Product: [Frameworks and Libraries] frameworks-kio Reporter: Florian Ruechel <code>
Component: FTPAssignee: KIO Bugs <kio-bugs-null>
Status: RESOLVED DUPLICATE    
Severity: crash CC: kdedev, kdelibs-bugs-null
Priority: NOR Keywords: drkonqi
Version First Reported In: 6.17.0   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report: https://crash-reports.kde.org/organizations/kde/issues/232953/events/ef1b007a18924ee0be4853f4f4834095/

Description Florian Ruechel 2025-08-12 11:06:00 UTC
Application: kioworker (6.17.0)

ApplicationNotResponding [ANR]: false
Qt Version: 6.9.1
Frameworks Version: 6.17.0
Operating System: Linux 6.15.9-arch1-1 x86_64
Windowing System: Wayland
Distribution: "Arch Linux"
DrKonqi: 6.4.3 [CoredumpBackend]

-- Information about the crash:
I'm trying to develop an FTP server (using Rust's unftp) so I started something locally. I then used Dolphin to connect to the FTP server to have a client to test with. I created an empty text file and opened it in Neovim. I made changes and tried to save it, but Neovim told me the file was opened read only (possibly b/c the FTP is so basic right now) and it didn't allow me save. The window then weirdly hang so I just closed it.

Then I shut down the FTP server with a simple Ctrl-C which would've abruptly terminated the connection. This caused the crashreport to appear for kioworker, and I believe the stack trace shows it's in the FTP code somewhere.

The reporter is unsure if this crash is reproducible.

-- Backtrace:
Application: kioworker (kioworker), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = <optimized out>}
Downloading separate debug info for /usr/lib/kf6/kioworker...
[New LWP 1149420]
[New LWP 1149421]
Downloading 39.83 M separate debug info for /usr/lib/libKF6KIOCore.so.6...
Downloading 100.87 M separate debug info for /usr/lib/libQt6Core.so.6...
Downloading 6.44 M separate debug info for /usr/lib/libKF6I18n.so.6...
Downloading 10.71 M separate debug info for /usr/lib/libKF6Service.so.6...
Downloading 3.52 M separate debug info for /usr/lib/libKF6AuthCore.so.6...
Downloading 1.10 M separate debug info for /usr/lib/libmount.so.1...
Downloading 2.24 M separate debug info for /usr/lib/libQt6Xml.so.6...
Downloading 8.45 M separate debug info for /usr/lib/libKF6ConfigCore.so.6...
Downloading 19.88 M separate debug info for /usr/lib/libKF6CoreAddons.so.6...
Downloading 19.72 M separate debug info for /usr/lib/libQt6DBus.so.6...
Downloading 22.59 M separate debug info for /usr/lib/libicui18n.so.76...
Downloading 10.53 M separate debug info for /usr/lib/libicuuc.so.76...
Downloading 4.67 M separate debug info for /usr/lib/libglib-2.0.so.0...
Downloading 4.56 M separate debug info for /usr/lib/libsystemd.so.0...
Downloading 394.91 K separate debug info for /usr/lib/libdouble-conversion.so.3...
Downloading 10.53 K separate debug info for /usr/lib/libb2.so.1...
Downloading 1.55 M separate debug info for /usr/lib/libpcre2-16.so.0...
Downloading 5.77 M separate debug info for /usr/lib/libzstd.so.1...
Downloading 3.24 M separate debug info for /usr/lib/libm.so.6...
Downloading 1.76 M separate debug info for /usr/lib/libgssapi_krb5.so.2...
Downloading 214.80 K separate debug info for /usr/lib/libbrotlidec.so.1...
Downloading 10.30 K separate debug info for /usr/lib/libproxy.so.1...
Downloading 14.17 M separate debug info for /usr/lib/libcrypto.so.3...
Downloading 199.86 M separate debug info for /usr/lib/libQt6Gui.so.6...
Downloading 30.38 M separate debug info for /usr/lib/libicudata.so.76...
Downloading 1.68 M separate debug info for /usr/lib/libpcre2-8.so.0...
Downloading 98.30 K separate debug info for /usr/lib/libcap.so.2...
Downloading 2.71 M separate debug info for /usr/lib/libkrb5.so.3...
Downloading 700.25 K separate debug info for /usr/lib/libk5crypto.so.3...
Downloading 142.47 K separate debug info for /usr/lib/libkrb5support.so.0...
Downloading 34.54 K separate debug info for /usr/lib/libkeyutils.so.1...
Downloading 211.89 K separate debug info for /usr/lib/libresolv.so.2...
Downloading 22.55 K separate debug info for /usr/lib/libbrotlicommon.so.1...
Downloading 193.99 K separate debug info for /usr/lib/libproxy/libpxbackend-1.0.so...
Downloading 1.73 M separate debug info for /usr/lib/libgobject-2.0.so.0...
Downloading 251.74 K separate debug info for /usr/lib/libEGL.so.1...
Downloading 2.21 M separate debug info for /usr/lib/libfontconfig.so.1...
Downloading 515.52 K separate debug info for /usr/lib/libGLX.so.0...
Downloading 65.06 K separate debug info for /usr/lib/libOpenGL.so.0...
Downloading 760.59 K separate debug info for /usr/lib/libpng16.so.16...
Downloading 37.88 M separate debug info for /usr/lib/libharfbuzz.so.0...
Downloading 221.83 K separate debug info for /usr/lib/libmd4c.so.0...
Downloading 3.34 M separate debug info for /usr/lib/libfreetype.so.6...
Downloading 500.05 K separate debug info for /usr/lib/libxcb.so.1...
Downloading 4.70 M separate debug info for /usr/lib/libcurl.so.4...
Downloading 10.46 M separate debug info for /usr/lib/libgio-2.0.so.0...
Downloading 1.31 M separate debug info for /usr/lib/libduktape.so.207...
Downloading 121.48 K separate debug info for /usr/lib/libffi.so.8...
Downloading 369.80 K separate debug info for /usr/lib/libGLdispatch.so.0...
Downloading 370.80 K separate debug info for /usr/lib/libexpat.so.1...
Downloading 1.34 M separate debug info for /usr/lib/libgraphite2.so.3...
Downloading 156.17 K separate debug info for /usr/lib/libbz2.so.1.0...
Downloading 29.59 K separate debug info for /usr/lib/libXau.so.6...
Downloading 52.94 K separate debug info for /usr/lib/libXdmcp.so.6...
Downloading 500.82 K separate debug info for /usr/lib/libnghttp3.so.9...
Downloading 550.80 K separate debug info for /usr/lib/libnghttp2.so.14...
Downloading 108.19 K separate debug info for /usr/lib/libidn2.so.0...
Downloading 1.22 M separate debug info for /usr/lib/libssh2.so.1...
Downloading 53.44 K separate debug info for /usr/lib/libpsl.so.5...
Downloading 4.04 M separate debug info for /usr/lib/libssl.so.3...
Downloading 267.86 K separate debug info for /usr/lib/libgmodule-2.0.so.0...
Downloading 1.62 M separate debug info for /usr/lib/libunistring.so.5...
Downloading 1.74 M separate debug info for /usr/lib/qt6/plugins/kf6/kio/kio_ftp.so...
Downloading 2.67 M separate debug info for /usr/lib/qt6/plugins/tls/libqcertonlybackend.so...
Downloading 6.88 M separate debug info for /usr/lib/qt6/plugins/tls/libqopensslbackend.so...
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Core was generated by `/usr/lib/kf6/kioworker /usr/lib/qt6/plugins/kf6/kio/kio_ftp.so ftp '' local:/run/user/1000/kiofusetucRvG.1.kioworker.socket'.
Program terminated with signal SIGSEGV, Segmentation fault.
Downloading 4.48 K source file /usr/src/debug/glibc/glibc/nptl/pthread_kill.c...
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44
44	      return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;
[Current thread is 1 (Thread 0x7f0994bcaa00 (LWP 1149420))]

Cannot QML trace cores :(
Downloading 86.28 K source file /usr/src/debug/kio/kio-6.17.0/src/kioworkers/ftp/ftp.cpp...
Downloading 11.77 K source file /usr/src/debug/kio/kio-6.17.0/src/core/workerbase.cpp...
Downloading 45.11 K source file /usr/src/debug/kio/kio-6.17.0/src/core/slavebase.cpp...
Downloading 5.76 K source file /usr/src/debug/kio/kio-6.17.0/src/core/workerbase_p.h...
Downloading 73.48 K source file /usr/src/debug/qt6-base/qtbase/src/corelib/io/qiodevice.cpp...
Downloading 4.02 K source file /usr/src/debug/qt6-base/qtbase/src/corelib/io/qiodevice.h...
Downloading 7.98 K source file /usr/src/debug/qt6-base/qtbase/src/corelib/global/qtclasshelpermacros.h...
Downloading 6.15 K source file /usr/src/debug/qt6-base/qtbase/src/corelib/tools/qscopedpointer.h...
Downloading 2.48 K source file /usr/src/debug/glibc/glibc/misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S...
Downloading 34.87 K source file /usr/src/debug/glibc/glibc/nptl/pthread_create.c...
Downloading 34.56 K source file /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp...
Downloading 10.02 K source file /usr/src/debug/qt6-base/qtbase/src/dbus/qdbusconnectionmanager.cpp...
Downloading 41.01 K source file /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread.cpp...
Downloading 13.17 K source file /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp...
Downloading 17.53 K source file /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp...
Downloading 185.96 K source file /usr/src/debug/glib2/build/../glib/glib/gmain.c...
Downloading 2.27 K source file /usr/src/debug/glibc/glibc/io/../sysdeps/unix/sysv/linux/ppoll.c...
Downloading 4.24 K source file /usr/src/debug/glibc/glibc/nptl/cancellation.c...
Downloading 1.79 K source file /usr/src/debug/glibc/glibc/nptl/../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S...
[Current thread is 1 (Thread 0x7f0994bcaa00 (LWP 1149420))]

Thread 2 (Thread 0x7f09947ff6c0 (LWP 1149421)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f0999a931ac in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=a5@entry=8, a6=a6@entry=0, nr=271) at cancellation.c:49
#2  0x00007f0999a931f4 in __syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=a5@entry=8, a6=a6@entry=0, nr=271) at cancellation.c:75
#3  0x00007f0999b0da76 in __GI_ppoll (fds=fds@entry=0x55df97d52080, nfds=nfds@entry=2, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:42
#4  0x00007f099957ee04 in ppoll (__fds=0x55df97d52080, __nfds=2, __timeout=0x0, __ss=0x0) at /usr/include/bits/poll2.h:101
#5  g_main_context_poll_unlocked (priority=<optimized out>, context=0x7f098c000cd0, timeout_usec=<optimized out>, fds=0x55df97d52080, n_fds=2) at ../glib/glib/gmain.c:4632
#6  g_main_context_iterate_unlocked (context=context@entry=0x7f098c000cd0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4309
#7  0x00007f099957eee5 in g_main_context_iteration (context=0x7f098c000cd0, may_block=1) at ../glib/glib/gmain.c:4379
#8  0x00007f099a23c5e2 in QEventDispatcherGlib::processEvents (this=0x7f098c000be0, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#9  0x00007f0999f744b6 in QEventLoop::processEvents (this=0x7f09947feaa0, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:104
#10 QEventLoop::exec (this=0x7f09947feaa0, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:186
#11 0x00007f099a0873c6 in QThread::exec (this=this@entry=0x7f0999730d40 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__q_manager> >::instance()::holder>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread.cpp:659
#12 0x00007f09996acdae in QDBusConnectionManager::run (this=0x7f0999730d40 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__q_manager> >::instance()::holder>) at /usr/src/debug/qt6-base/qtbase/src/dbus/qdbusconnectionmanager.cpp:144
#13 0x00007f099a11ee69 in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:434
#14 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:366
#15 QThreadPrivate::start (arg=0x7f0999730d40 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__q_manager> >::instance()::holder>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:394
#16 0x00007f0999a969cb in start_thread (arg=<optimized out>) at pthread_create.c:448
#17 0x00007f0999b1aa4c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 1 (Thread 0x7f0994bcaa00 (LWP 1149420)):
[KCrash Handler]
#5  0x00007f0999f2ec71 in QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::get (this=0x8, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/tools/qscopedpointer.h:112
#6  qGetPtrHelper<QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > > (ptr=..., ptr=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/global/qtclasshelpermacros.h:137
#7  QIODevice::d_func (this=0x0) at /usr/src/debug/qt6-base/qtbase/src/corelib/io/qiodevice.h:146
#8  QIODevice::write (this=0x0, data=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/io/qiodevice.cpp:1867
#9  0x00007f099a60355b in FtpInternal::ftpSendCmd (this=0x55df97a233f0, cmd=..., maxretries=1) at /usr/src/debug/kio/kio-6.17.0/src/kioworkers/ftp/ftp.cpp:721
#10 0x00007f099a60eca1 in FtpInternal::ftpFolder (this=0x55df97a233f0, path=<optimized out>) at /usr/src/debug/kio/kio-6.17.0/src/kioworkers/ftp/ftp.cpp:2200
#11 0x00007f099a60a2cd in FtpInternal::stat (this=0x55df97a233f0, url=...) at /usr/src/debug/kio/kio-6.17.0/src/kioworkers/ftp/ftp.cpp:1378
#12 0x00007f099a60daf6 in Ftp::stat (this=<optimized out>, url=<optimized out>) at /usr/include/c++/15.1.1/bits/unique_ptr.h:193
#13 0x00007f099a4e53f0 in KIO::WorkerSlaveBaseBridge::stat (this=0x55df97a1ed00, url=<optimized out>) at /usr/src/debug/kio/kio-6.17.0/src/core/workerbase_p.h:111
#14 0x00007f099a4e12ef in KIO::SlaveBase::dispatch (this=0x55df97a1ed00, command=69, data=...) at /usr/src/debug/kio/kio-6.17.0/src/core/slavebase.cpp:1221
#15 0x00007f099a4dee70 in KIO::SlaveBase::dispatchLoop() [clone .constprop.0] (this=<optimized out>) at /usr/src/debug/kio/kio-6.17.0/src/core/slavebase.cpp:363
#16 0x00007f099a4e217d in KIO::WorkerBase::dispatchLoop (this=<optimized out>) at /usr/src/debug/kio/kio-6.17.0/src/core/workerbase.cpp:27
#17 0x00007f099a60d7f8 in kdemain (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kio/kio-6.17.0/src/kioworkers/ftp/ftp.cpp:177
#18 0x000055df7e07f24a in main (argc=5, argv=0x7fff1b1c9598) at /usr/include/qt6/QtCore/qvarlengtharray.h:89

Reported using DrKonqi
Comment 1 TraceyC 2025-08-12 17:37:05 UTC
Thank you for the bug report. Based on the backtrace this looks like a duplicate of bug 503928. Please follow that report if you would like updates on the progress of this issue.

*** This bug has been marked as a duplicate of bug 503928 ***