https://bugs.kde.org/show_bug.cgi?id=515511
Bug ID: 515511
Summary: Trash crashed after attempt to delete the folder
Classification: Frameworks and Libraries
Product: frameworks-kio
Version First unspecified
Reported In:
Platform: Neon
OS: Linux
Status: REPORTED
Keywords: drkonqi
Severity: crash
Priority: NOR
Component: general
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected]
Target Milestone: ---
Application: kioworker (6.22.1)
ApplicationNotResponding [ANR]: false
Qt Version: 6.10.1
Frameworks Version: 6.22.0
Operating System: Linux 6.14.0-37-generic x86_64
Windowing System: Wayland
Distribution: KDE neon User Edition
DrKonqi: 6.5.5 [CoredumpBackend]
-- Information about the crash:
Unpacked the archive partially (via Ark), canceled the unpack, tried to delete
the folder, crashed every time as I tried. I experienced same behavior before,
and both of times when files are created with size, less than full (partial
created files that grow in size), both ways to fix - as I remember or restart
the Dolphin, or restart the whole system.
(sorry but I was curious and) Claude concluded that it's handler of the file
size (weird since how I can delete the big files then? nvm, tested and I still
can't delete big files before reboot, nor 6+ GB file, nor folder that contains
it, but can delete folder with smaller file), cite:
The crash occurred in KDE's Trash system when trying to move a file to trash.
Specifically:
The problem (line #16-18):
qCheckedFPConversionToInteger<int, double>(value=6704756736.5)
qRound(d=6704756736)
TrashImpl::adaptTrashSize
Root cause: The trash implementation tried to convert a very large file size
(6704756736.5 bytes ≈ 6.7 GB) from a double to an int, which caused an integer
overflow.
int maximum value is ~2.1 billion (2,147,483,647)
The file size was 6.7 billion bytes
This triggered Qt's assertion check and crashed the program
What was happening:
You were moving a file to trash (line #20: TrashImpl::moveToTrash)
The system was trying to update the trash size metadata (line #18:
adaptTrashSize)
It tried to round a file size that was too large to fit in a 32-bit integer
Qt detected the overflow and aborted to prevent corruption
The crash can be reproduced every time.
-- Backtrace:
Application: kioworker (kioworker), signal: Aborted
[New LWP 161780]
[New LWP 161781]
This GDB supports auto-downloading debuginfo from the following URLs:
<https://debuginfod.neon.kde.org/>
<https://debuginfod.ubuntu.com/>
Enable debuginfod for this session? (y or [n]) [answered N; input not from
terminal]
Debuginfod has been disabled.
To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/lib/x86_64-linux-gnu/libexec/kf6/kioworker
/usr/lib/x86_64-linux-gnu/qt6/plugi'.
Program terminated with signal SIGABRT, Aborted.
#0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)
at ./nptl/pthread_kill.c:44
warning: 44 ./nptl/pthread_kill.c: No such file or directory
[Current thread is 1 (Thread 0x6ffdf19e33c0 (LWP 161780))]
add symbol table from file "/lib/x86_64-linux-gnu/libc.so.6"
add symbol table from file "/lib/x86_64-linux-gnu/libKF6Crash.so.6"
add symbol table from file "/lib/x86_64-linux-gnu/libQt6Core.so.6"
add symbol table from file
"/usr/lib/x86_64-linux-gnu/qt6/plugins/kf6/kio/kio_trash.so"
add symbol table from file "/lib/x86_64-linux-gnu/libKF6KIOCore.so.6"
add symbol table from file "/usr/lib/x86_64-linux-gnu/libexec/kf6/kioworker"
[Current thread is 1 (Thread 0x6ffdf19e33c0 (LWP 161780))]
Thread 2 (Thread 0x6ffdf11896c0 (LWP 161781)):
#0 0x00006ffdf671b4fd in __GI___poll (fds=0x6ffdec0013b0, nfds=2, timeout=-1)
at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00006ffdf64b26be in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2 0xffffffff00000001 in ?? ()
#3 0x00006ffdf11886d4 in ?? ()
#4 0xffffffff7fffffff in ?? ()
#5 0xf6e3e118edd9fd00 in ?? ()
#6 0x00006ffdf1188710 in ?? ()
#7 0x00006ffdec000c90 in ?? ()
#8 0x0000000000000001 in ?? ()
#9 0x00006ffdec000b90 in ?? ()
#10 0x0000000000000000 in ?? ()
Thread 1 (Thread 0x6ffdf19e33c0 (LWP 161780)):
[KCrash Handler]
#6 __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)
at ./nptl/pthread_kill.c:44
#7 __pthread_kill_internal (signo=6, threadid=<optimized out>) at
./nptl/pthread_kill.c:78
#8 __GI___pthread_kill (threadid=<optimized out>, signo=6) at
./nptl/pthread_kill.c:89
#9 0x00006ffdf664527e in __GI_raise (sig=6) at ../sysdeps/posix/raise.c:26
#10 0x00006ffdf66288ff in __GI_abort () at ./stdlib/abort.c:79
#11 0x00006ffdf7332891 in qAbort () at
/usr/src/qt6-base-6.10.1-0zneon+24.04+noble+release+build145/src/corelib/global/qassert.cpp:46
#12 qt_maybe_message_fatal<QString&> (message=..., context=...,
msgType=QtFatalMsg) at
/usr/src/qt6-base-6.10.1-0zneon+24.04+noble+release+build145/src/corelib/global/qlogging.cpp:2166
#13 qt_message(QtMsgType, const QMessageLogContext &, const char *, typedef
__va_list_tag __va_list_tag *) (msgType=msgType@entry=QtFatalMsg, context=...,
msg=msg@entry=0x6ffdf704e8e8 "ASSERT: \"%s\" in file %s, line %d",
ap=ap@entry=0x7ffcf9d8a258) at
/usr/src/qt6-base-6.10.1-0zneon+24.04+noble+release+build145/src/corelib/global/qlogging.cpp:412
#14 0x00006ffdf7333653 in QMessageLogger::fatal (this=<optimized out>,
msg=0x6ffdf704e8e8 "ASSERT: \"%s\" in file %s, line %d") at
/usr/src/qt6-base-6.10.1-0zneon+24.04+noble+release+build145/src/corelib/global/qlogging.cpp:901
#15 0x00006ffdf7321020 in qt_assert (assertion=<optimized out>, file=<optimized
out>, line=<optimized out>) at
/usr/src/qt6-base-6.10.1-0zneon+24.04+noble+release+build145/src/corelib/global/qassert.cpp:113
#16 0x00006ffdf13d2932 in QtPrivate::qCheckedFPConversionToInteger<int, double,
true, true> (value=6704756736.5) at
/usr/include/x86_64-linux-gnu/qt6/QtCore/qnumeric.h:516
#17 0x00006ffdf13cfb99 in qRound (d=6704756736) at
/usr/include/x86_64-linux-gnu/qt6/QtCore/qnumeric.h:565
#18 0x00006ffdf13cf1ad in TrashImpl::adaptTrashSize (this=0x7ffcf9d8aca0,
origPath=..., trashId=0) at
/workspace/build/src/kioworkers/trash/trashimpl.cpp:1331
#19 0x00006ffdf13c99d5 in TrashImpl::moveToTrash (this=0x7ffcf9d8aca0,
origPath=..., trashId=0, fileId=...) at
/workspace/build/src/kioworkers/trash/trashimpl.cpp:393
#20 0x00006ffdf13bbd1a in TrashProtocol::copyOrMoveToTrash
(this=0x7ffcf9d8ac80, src=..., dest=..., action=TrashProtocol::Move) at
/workspace/build/src/kioworkers/trash/kio_trash.cpp:270
#21 0x00006ffdf13bad6a in TrashProtocol::rename (this=0x7ffcf9d8ac80,
oldURL=..., newURL=..., flags=...) at
/workspace/build/src/kioworkers/trash/kio_trash.cpp:186
#22 0x00006ffdf7705f98 in KIO::WorkerSlaveBaseBridge::rename
(this=0x64bb535628a0, src=..., dest=..., flags=...) at
/workspace/build/src/core/workerbase_p.h:131
#23 0x00006ffdf76fc8d6 in KIO::SlaveBase::dispatch (this=0x64bb535628a0,
command=73, data=...) at /workspace/build/src/core/slavebase.cpp:1199
#24 0x00006ffdf76f7211 in KIO::SlaveBase::dispatchLoop (this=0x64bb535628a0) at
/workspace/build/src/core/slavebase.cpp:330
#25 0x00006ffdf770383a in KIO::WorkerBase::dispatchLoop (this=0x7ffcf9d8ac90)
at /workspace/build/src/core/workerbase.cpp:27
#26 0x00006ffdf13b9a5b in kdemain (argc=4, argv=0x7ffcf9d8ae78) at
/workspace/build/src/kioworkers/trash/kio_trash.cpp:51
#27 0x000064bb4e79499b in main (argc=5, argv=0x7ffcf9d8afe8) at
/workspace/build/src/kioworker/kioworker.cpp:144
Reported using DrKonqi
--
You are receiving this mail because:
You are watching all bug changes.