https://bugs.kde.org/show_bug.cgi?id=480033
Bug ID: 480033 Summary: Crash in SFTPWorker::sftpCopyGet in coroutine Classification: Frameworks and Libraries Product: kio-extras Version: unspecified Platform: Other OS: Linux Status: REPORTED Severity: normal Priority: NOR Component: SFTP Assignee: plasma-b...@kde.org Reporter: k...@privat.broulik.de Target Milestone: --- SUMMARY Using KIO SFTP apart from browsing folders in Dolphin is almost impossible because it crashes all the time in Coroutine stuff when actually downloading files (bei it through the thumbnailer or opening a file in Kate). I assume the coroutine resumes when the stuff it accesses is already gone, common pattern with QCoro. STEPS TO REPRODUCE 1. Open an sftp:/ share in Dolphin 2. Turn on previews 3. Browse around or open files OBSERVED RESULT kio SFTP crashes EXPECTED RESULT kio SFTP works SOFTWARE/OS VERSIONS Linux/KDE Plasma: git master 2024-08-18 Qt Version: 6.6.1 ADDITIONAL INFORMATION The places it crashes are different but it's always got to do with coroutines [KCrash Handler] #6 __pthread_kill_implementation (no_tid=0, signo=6, threadid=139679482331776) at ./nptl/pthread_kill.c:44 #7 __pthread_kill_internal (signo=6, threadid=139679482331776) at ./nptl/pthread_kill.c:78 #8 __GI___pthread_kill (threadid=139679482331776, signo=signo@entry=6) at ./nptl/pthread_kill.c:89 #9 0x00007f09ade42476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26 #10 0x00007f09ade287f3 in __GI_abort () at ./stdlib/abort.c:79 #11 0x00007f09ade89676 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7f09adfdbb77 "%s\n") at ../sysdeps/posix/libc_fatal.c:155 #12 0x00007f09adea0cfc in malloc_printerr (str=str@entry=0x7f09adfdec48 "malloc(): unsorted double linked list corrupted") at ./malloc/malloc.c:5664 #13 0x00007f09adea42dc in _int_malloc (av=av@entry=0x7f09ae01ac80 <main_arena>, bytes=bytes@entry=65536) at ./malloc/malloc.c:4010 #14 0x00007f09adea5139 in __GI___libc_malloc (bytes=65536) at ./malloc/malloc.c:3329 #15 0x00007f09ae5b08e8 in allocateData (allocSize=<optimized out>) at ./src/corelib/tools/qarraydata.cpp:139 #16 QArrayData::allocate (dptr=0x7ffc7f69dfa0, objectSize=<optimized out>, alignment=8, capacity=65518, option=<optimized out>) at ./src/corelib/tools/qarraydata.cpp:189 #17 0x00007f09ae62242c in QTypedArrayData<char>::allocate (option=QArrayData::Grow, capacity=0) at ./src/corelib/tools/qarraydata.h:101 #18 QByteArray::reallocData (this=this@entry=0x557979e4ce78, alloc=alloc@entry=59307, option=option@entry=QArrayData::Grow) at ./src/corelib/text/qbytearray.cpp:1927 #19 0x00007f09ae62279a in QByteArray::resize (this=this@entry=0x557979e4ce78, size=size@entry=59307) at ./src/corelib/text/qbytearray.cpp:1866 #20 0x00007f09ae9a0d2e in SFTPWorker::GetRequest::readChunks (data=..., this=0x557979e4ce48) at ./sftp/kio_sftp.cpp:2088 #21 SFTPWorker::asyncRead(_ZN10SFTPWorker9asyncReadEP16sftp_file_structm.Frame *) (frame_ptr=0x557979e4ce00) at ./sftp/kio_sftp.cpp:2247 #22 0x00007f09ae99bb89 in std::__n4861::coroutine_handle<QCoro::detail::GeneratorPromise<SFTPWorker::ReadResponse> >::resume (this=<synthetic pointer>) at /usr/include/c++/11/coroutine:231 #23 QCoro::GeneratorIterator<SFTPWorker::ReadResponse>::operator++ (this=<synthetic pointer>) at /usr/include/qcoro6/qcoro/qcorogenerator.h:171 #24 SFTPWorker::sftpGet (this=0x7ffc7f69e680, url=..., offset=<optimized out>, fd=5) at ./sftp/kio_sftp.cpp:1311 #25 0x00007f09ae99efa7 in SFTPWorker::sftpCopyGet (flags=..., permissionsMode=<optimized out>, sCopyFile=..., url=..., this=0x7ffc7f69e680) at ./sftp/kio_sftp.cpp:1664 #26 SFTPWorker::copy (this=0x7ffc7f69e680, src=..., dest=..., permissions=<optimized out>, flags=...) at ./sftp/kio_sftp.cpp:1588 #27 0x00007f09ae8631f4 in KIO::WorkerSlaveBaseBridge::copy (this=0x557979d22210, src=..., dest=..., permissions=<optimized out>, flags=...) at ./src/core/workerbase_p.h:156 --- [KCrash Handler] #6 0x00007f95f88334ec in QArrayDataPointer<char>::deref (this=0x557416dd9798, this=0x557416dd9798) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qarraydatapointer.h:413 #7 QArrayDataPointer<char>::~QArrayDataPointer (this=<optimized out>, this=<optimized out>) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qarraydatapointer.h:102 #8 0x00007f95f8833691 in QByteArray::~QByteArray (this=<optimized out>, this=<optimized out>) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qbytearray.h:521 #9 SFTPWorker::asyncRead(_ZN10SFTPWorker9asyncReadEP16sftp_file_structm.Frame *) (frame_ptr=0x557416dd9720) at ./sftp/kio_sftp.cpp:2261 #10 0x00007f95f882eb89 in std::__n4861::coroutine_handle<QCoro::detail::GeneratorPromise<SFTPWorker::ReadResponse> >::resume (this=<synthetic pointer>) at /usr/include/c++/11/coroutine:231 #11 QCoro::GeneratorIterator<SFTPWorker::ReadResponse>::operator++ (this=<synthetic pointer>) at /usr/include/qcoro6/qcoro/qcorogenerator.h:171 #12 SFTPWorker::sftpGet (this=0x7ffe2764d790, url=..., offset=<optimized out>, fd=8) at ./sftp/kio_sftp.cpp:1311 #13 0x00007f95f8831fa7 in SFTPWorker::sftpCopyGet (flags=..., permissionsMode=<optimized out>, sCopyFile=..., url=..., this=0x7ffe2764d790) at ./sftp/kio_sftp.cpp:1664 #14 SFTPWorker::copy (this=0x7ffe2764d790, src=..., dest=..., permissions=<optimized out>, flags=...) at ./sftp/kio_sftp.cpp:1588 #15 0x00007f95f86f61f4 in KIO::WorkerSlaveBaseBridge::copy (this=0x557416cb0210, src=..., dest=..., permissions=<optimized out>, flags=...) at ./src/core/workerbase_p.h:156 -- You are receiving this mail because: You are watching all bug changes.