Bug 503610

Summary: Dolphin crashes when any items are moved to trash
Product: [Applications] dolphin Reporter: Akseli Lahtinen <akselmo>
Component: bars: filterAssignee: Dolphin Bug Assignee <dolphin-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: kfm-devel
Priority: NOR    
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Akseli Lahtinen 2025-05-01 10:52:44 UTC
SUMMARY

When quickfiltering items, then deleting one of the filtered items, Dolphin seems to crash.


STEPS TO REPRODUCE
1. Go to any folder with a lot of files
2. Press / to filter by some name
3. Delete a found file
4. File does get moved to trash, but after that it crashes.

OBSERVED RESULT
Crash! :(

EXPECTED RESULT
No crash! :)

SOFTWARE/OS VERSIONS
Operating System: Fedora Linux 42
KDE Plasma Version: 6.3.80
KDE Frameworks Version: 6.14.0
Qt Version: 6.9.0
Kernel Version: 6.14.4-300.fc42.x86_64 (64-bit)
Graphics Platform: Wayland
Processors: 12 × AMD Ryzen 5 3600 6-Core Processor
Memory: 16 GiB of RAM (15.5 GiB usable)
Graphics Processor: AMD Radeon RX 6600

BACKTRACE:

(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0)
at pthread_kill.c:44
#1  0x00007fee22c811e3 in __pthread_kill_internal (threadid=<optimized out>, signo=11) at pthread_kill.c:89
#2  0x00007fee22c27afe in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
#3  0x00007fee261cc88a in KCrash::defaultCrashHandler (sig=11)
at /home/akseli/Repositories/kde/src/kcrash/src/kcrash.cpp:605
#4  0x00007fee22c27c30 in <signal handler called> () at /lib64/libc.so.6
#5  0x00007fee232d4014 in QUrl::QUrl (this=this@entry=0x7fff16f64dd8, other=...)
at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/io/qurl.cpp:1799
#6  0x00007fee26207455 in KFileItem::url (this=<optimized out>)
at /home/akseli/Repositories/kde/src/kio/src/core/kfileitem.cpp:1668
#7  0x00007fee26bb5e93 in KFileItemModel::index (this=this@entry=0x16c5b1e0, item=<optimized out>)
at /home/akseli/Repositories/kde/src/dolphin/src/kitemviews/kfileitemmodel.cpp:482
#8  0x00007fee26c565d3 in DolphinView::selectNextItem (this=0x16c5a980)
at /home/akseli/Repositories/kde/src/dolphin/src/views/dolphinview.cpp:1886
#9  DolphinView::selectNextItem (this=0x16c5a980)
at /home/akseli/Repositories/kde/src/dolphin/src/views/dolphinview.cpp:1878
#10 0x00007fee26c56705 in DolphinView::slotTrashFileFinished (this=0x16c5a980, job=<optimized out>)
at /home/akseli/Repositories/kde/src/dolphin/src/views/dolphinview.cpp:1861
#11 0x00007fee2336033a in QtPrivate::QSlotObjectBase::call (this=0x17175800, r=0x16c5a980, a=0x7fff16f64fa0)
at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qobjectdefs_impl.h:461
#12 doActivate<false> (sender=0x16f6c080, signal_index=6, argv=argv@entry=0x7fff16f64fa0)
at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qobject.cpp:4138
#13 0x00007fee23356d09 in QMetaObject::activate
(sender=sender@entry=0x16f6c080, m=m@entry=0x7fee25ba1ea0, local_signal_index=local_signal_index@entry=3, argv=argv@entry=0x7fff16f64fa0) at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qobject.cpp:4198
#14 0x00007fee25b0cc40 in QMetaObject::activate<void, KJob*, KJob::QPrivateSignal>
(sender=sender@entry=0x16f6c080, mo=0x7fee25ba1ea0, local_signal_index=3, ret=0x0)
at /usr/include/qt6/QtCore/qobjectdefs.h:306
#15 KJob::result (this=this@entry=0x16f6c080, _t1=<optimized out>, _t1@entry=0x16f6c080, _t2=...)
at /home/akseli/Repositories/kde/build/kcoreaddons/src/lib/KF6CoreAddons_autogen/include/moc_kjob.cpp:475
#16 0x00007fee25b0d94b in KJob::finishJob (this=0x16f6c080, emitResult=<optimized out>)
at /home/akseli/Repositories/kde/src/kcoreaddons/src/lib/jobs/kjob.cpp:115
#17 0x00007fee2336033a in QtPrivate::QSlotObjectBase::call (this=0x16f5a8c0, r=0x16f6c080, a=0x7fff16f650d0)
--Type <RET> for more, q to quit, c to continue without paging--c
at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qobjectdefs_impl.h:461
#18 doActivate<false> (sender=0x17099fb0, signal_index=6, argv=argv@entry=0x7fff16f650d0)
at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qobject.cpp:4138
#19 0x00007fee23356d09 in QMetaObject::activate
(sender=sender@entry=0x17099fb0, m=m@entry=0x7fee25ba1ea0, local_signal_index=local_signal_index@entry=3, argv=argv@entry=0x7fff16f650d0) at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qobject.cpp:4198
#20 0x00007fee25b0cc40 in QMetaObject::activate<void, KJob*, KJob::QPrivateSignal>
(sender=sender@entry=0x17099fb0, mo=0x7fee25ba1ea0, local_signal_index=3, ret=0x0)
at /usr/include/qt6/QtCore/qobjectdefs.h:306
#21 KJob::result (this=this@entry=0x17099fb0, _t1=<optimized out>, _t1@entry=0x17099fb0, _t2=...)
at /home/akseli/Repositories/kde/build/kcoreaddons/src/lib/KF6CoreAddons_autogen/include/moc_kjob.cpp:475
#22 0x00007fee25b0d94b in KJob::finishJob (this=0x17099fb0, emitResult=<optimized out>)
at /home/akseli/Repositories/kde/src/kcoreaddons/src/lib/jobs/kjob.cpp:115
#23 0x00007fee2621c870 in KIO::CopyJobPrivate::createNextDir (this=0x16879990)
at /home/akseli/Repositories/kde/src/kio/src/core/copyjob.cpp:1484
#24 0x00007fee2621cb58 in KIO::CopyJobPrivate::statCurrentSrc (this=<optimized out>)
at /home/akseli/Repositories/kde/src/kio/src/core/copyjob.cpp:1086
#25 0x00007fee2621d80a in KIO::CopyJobPrivate::statNextSrc (this=<optimized out>)
at /home/akseli/Repositories/kde/src/kio/src/core/copyjob.cpp:964
#26 0x00007fee2621f860 in KIO::CopyJobPrivate::slotResultRenaming (this=<optimized out>, job=<optimized out>)
at /home/akseli/Repositories/kde/src/kio/src/core/copyjob.cpp:2465
#27 0x00007fee2336033a in QtPrivate::QSlotObjectBase::call (this=0x17167f50, r=0x17099fb0, a=0x7fff16f65470)
at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qobjectdefs_impl.h:461
#28 doActivate<false> (sender=0x16cfa130, signal_index=6, argv=argv@entry=0x7fff16f65470)
at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qobject.cpp:4138
#29 0x00007fee23356d09 in QMetaObject::activate
(sender=sender@entry=0x16cfa130, m=m@entry=0x7fee25ba1ea0, local_signal_index=local_signal_index@entry=3, argv=argv@entry=0x7fff16f65470) at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qobject.cpp:4198
#30 0x00007fee25b0cc40 in QMetaObject::activate<void, KJob*, KJob::QPrivateSignal>
(sender=sender@entry=0x16cfa130, mo=0x7fee25ba1ea0, local_signal_index=3, ret=0x0)
at /usr/include/qt6/QtCore/qobjectdefs.h:306
#31 KJob::result (this=this@entry=0x16cfa130, _t1=<optimized out>, _t1@entry=0x16cfa130, _t2=...)
at /home/akseli/Repositories/kde/build/kcoreaddons/src/lib/KF6CoreAddons_autogen/include/moc_kjob.cpp:475
#32 0x00007fee25b0d94b in KJob::finishJob (this=0x16cfa130, emitResult=<optimized out>)
at /home/akseli/Repositories/kde/src/kcoreaddons/src/lib/jobs/kjob.cpp:115
#33 0x00007fee2336033a in QtPrivate::QSlotObjectBase::call (this=0x16f5bea0, r=0x16cfa130, a=0x7fff16f65538)
at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qobjectdefs_impl.h:461
#34 doActivate<false> (sender=0x16e68f90, signal_index=7, argv=0x7fff16f65538)
at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qobject.cpp:4138
#35 0x00007fee23356d09 in QMetaObject::activate
(sender=sender@entry=0x16e68f90, m=m@entry=0x7fee26378600 <KIO::WorkerInterface::staticMetaObject>, local_signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qobject.cpp:4198
#36 0x00007fee262c8d1f in KIO::WorkerInterface::privilegeOperationRequested (this=<optimized out>)
at /home/akseli/Repositories/kde/build/kio/src/core/KF6KIOCore_autogen/include/moc_workerinterface_p.cpp:389
#37 KIO::WorkerInterface::dispatch (this=0x16e68f90, _cmd=<optimized out>, rawdata=...)
at /home/akseli/Repositories/kde/src/kio/src/core/workerinterface.cpp:276
#38 0x00007fee262c6766 in KIO::WorkerInterface::dispatch (this=0x16e68f90)
at /home/akseli/Repositories/kde/src/kio/src/core/workerinterface.cpp:58
#39 0x00007fee262c3c67 in KIO::Worker::gotInput (this=0x16e68f90)
at /home/akseli/Repositories/kde/src/kio/src/core/worker.cpp:261
#40 0x00007fee2336033a in QtPrivate::QSlotObjectBase::call (this=0x16e817c0, r=0x16e68f90, a=0x7fff16f65888)
at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qobjectdefs_impl.h:461
#41 doActivate<false> (sender=0x16e93990, signal_index=3, argv=0x7fff16f65888)
at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qobject.cpp:4138
#42 0x00007fee23350fec in QObject::event (this=<optimized out>, e=<optimized out>)
at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qobject.cpp:1431
#43 0x00007fee2443d7af in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x16e93990, e=0x16f713b0)
at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/widgets/kernel/qapplication.cpp:3301
#44 0x00007fee232f5fa8 in QCoreApplication::notifyInternal2 (receiver=0x16e93990, event=0x16f713b0)
at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1106
#45 0x00007fee232f620d in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>)
at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1546
#46 0x00007fee232f9cd6 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x16350790)
at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1879
#47 0x00007fee235ffd2f in postEventSourceDispatch (s=0x16356160)
at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:246
#48 0x00007fee20cfc040 in g_main_dispatch (context=0x7fee08000f00) at ../glib/gmain.c:3398
#49 g_main_context_dispatch_unlocked (context=0x7fee08000f00) at ../glib/gmain.c:4249
#50 0x00007fee20d05128 in g_main_context_iterate_unlocked
(context=context@entry=0x7fee08000f00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
at ../glib/gmain.c:4314
#51 0x00007fee20d052d3 in g_main_context_iteration (context=0x7fee08000f00, may_block=1) at ../glib/gmain.c:4379
#52 0x00007fee235ff56d in QEventDispatcherGlib::processEvents (this=0x16359900, flags=...)
at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#53 0x00007fee23303783 in QEventLoop::exec (this=this@entry=0x7fff16f65d30, flags=..., flags@entry=...)
at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/global/qflags.h:77
#54 0x00007fee232ff229 in QCoreApplication::exec ()
at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1449
#55 0x00007fee23adac3d in QGuiApplication::exec ()
at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/gui/kernel/qguiapplication.cpp:1993
#56 0x00007fee2443d719 in QApplication::exec ()
at /usr/src/debug/qt6-qtbase-6.9.0-2.fc42.x86_64/src/widgets/kernel/qapplication.cpp:2568
#57 0x000000000040b825 in main (argc=<optimized out>, argv=<optimized out>)
at /home/akseli/Repositories/kde/src/dolphin/src/main.cpp:273
Comment 1 Méven 2025-05-02 07:37:37 UTC
Git commit f9569eb19d3dad9693312015436a5419322a3a1b by Méven Car.
Committed on 02/05/2025 at 07:28.
Pushed by meven into branch 'master'.

dolphinview: fix crash

Correctly find the last element in the list instead of the one after the last

Amends: 0464ea82a6850f58805bc4d6fc1df5369d83c3df

M  +1    -1    src/views/dolphinview.cpp

https://invent.kde.org/system/dolphin/-/commit/f9569eb19d3dad9693312015436a5419322a3a1b