Bug 506266

Summary: Save File Dialog crash when double clicking (to open folder) any field other than the "Name" field
Product: [Frameworks and Libraries] frameworks-kio Reporter: ulterno
Component: Open/save dialogsAssignee: KIO Bugs <kio-bugs-null>
Status: RESOLVED WORKSFORME    
Severity: crash CC: aleixpol, kde, kde, kdelibs-bugs-null, nate
Priority: NOR Keywords: drkonqi
Version First Reported In: 6.15.0   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report: https://crash-reports.kde.org/organizations/kde/issues/206988/events/cec78b42331b4ab495e6c530874b710f/
Attachments: New crash information added by DrKonqi

Description ulterno 2025-06-27 12:32:14 UTC
Application: xdg-desktop-portal-kde (6.4.0)

ApplicationNotResponding [ANR]: false
Qt Version: 6.9.1
Frameworks Version: 6.15.0
Operating System: Linux 6.15.3-arch1-1 x86_64
Windowing System: Wayland
Distribution: EndeavourOS
DrKonqi: 6.4.0 [CoredumpBackend]

-- Information about the crash:
STEPS TO REPRODUCE
0. Set the save file dialog to show the Details View by default
1. Save something. Anything that invokess the save file dialog
2. Try to open a folder by double clicking. But double click one of the 2 other fields (Size or Date) instead of the "Name" field

IDIOSYNCRASY
- The Details View should be the default view BEFORE opening the save file dialog. If you change the viewe mode before clicking on the other field of the folder, it won't cause the crash.
- Even if the details view is the default view, if you change the view to one of the others and then change back to the details view, then double clicking on the "Size" or "Date" fields won't cause a crash

The crash can be reproduced every time.

-- Backtrace (Reduced):
#5  KFileItem::isFile (this=0x0) at /usr/include/c++/15.1.1/bits/stl_function.h:496
#6  0x00007f9cc4ffc82f in KFileWidgetPrivate::slotViewDoubleClicked (this=0x55718a510c50, index=...) at /usr/include/qt6/QtCore/qlist.h:189
#7  operator() (__closure=<optimized out>, index=...) at /usr/src/debug/kio/kio-6.15.0/src/filewidgets/kfilewidget.cpp:1997
#8  operator() (__closure=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:116
#12 QtPrivate::QCallableObject<KFileWidget::showEvent(QShowEvent*)::<lambda(const QModelIndex&)>, QtPrivate::List<const QModelIndex&>, 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:547
#13 0x00007f9cc1fd37ef 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:461
#14 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4146
[...]
#16 QAbstractItemView::doubleClicked (this=0x55718a3f9240, _t1=...) at /usr/src/debug/qt6-base/build/src/widgets/Widgets_autogen/include/moc_qabstractitemview.cpp:558
#17 QTreeView::mouseDoubleClickEvent (this=0x55718a3f9240, event=0x7ffd0529f8d0) at /usr/src/debug/qt6-base/qtbase/src/widgets/itemviews/qtreeview.cpp:2021
#18 0x00007f9cc315b38b in QWidget::event (this=0x55718a3f9240, event=0x7ffd0529f8d0) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qwidget.cpp:8991
#19 0x00007f9cc31c7a76 in QFrame::event (this=0x55718a3f9240, e=0x7ffd0529f8d0) at /usr/src/debug/qt6-base/qtbase/src/widgets/widgets/qframe.cpp:521
#20 0x00007f9cc1f675dc in QCoreApplicationPrivate::sendThroughObjectEventFilters (receiver=receiver@entry=0x55718a3f9280, event=event@entry=0x7ffd0529f8d0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1243
#21 0x00007f9cc3101c60 in QApplicationPrivate::notify_helper (this=this@entry=0x557189d16790, receiver=receiver@entry=0x55718a3f9280, e=e@entry=0x7ffd0529f8d0) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3297
#22 0x00007f9cc3105c39 in QApplication::notify (this=<optimized out>, receiver=<optimized out>, e=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2780
#23 0x00007f9cc1f68118 in QCoreApplication::notifyInternal2 (receiver=0x55718a3f9280, event=0x7ffd0529f8d0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1106
#24 0x00007f9cc1f6816d in QCoreApplication::sendSpontaneousEvent (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1560


Reported using DrKonqi
Comment 1 ulterno 2025-06-27 12:32:16 UTC
Created attachment 182721 [details]
New crash information added by DrKonqi

DrKonqi auto-attaching complete backtrace.
Comment 2 Kai Uwe Broulik 2025-06-27 12:39:07 UTC
if (m_operationMode == KFileWidget::Saving && index.isValid() && m_ops->selectedItems().constFirst().isFile()) {

Probably m_ops->selectedItems() being empty and then constFirst() is garbage.
Comment 3 David Redondo 2025-07-01 12:23:31 UTC
Interesting I can't reproduce with the native dialog but the portal one.
Comment 4 David Redondo 2025-07-01 12:24:54 UTC
Nevermind it also happens with the native dialog, you have to double click a file
Moving to KIO
Comment 5 Nate Graham 2025-08-13 18:03:50 UTC
I can't reproduce this with Frameworks 6.17 or later. Is anyone else still able to?
Comment 6 ulterno 2025-08-14 02:25:39 UTC
(In reply to Nate Graham from comment #5)
> I can't reproduce this with Frameworks 6.17 or later. Is anyone else still
> able to?

On Arch, I am still able to. You should find a report on Sentry with the bug no. in the description.

KDE Plasma Version: 6.4.4
KDE Frameworks Version: 6.17.0
Qt Version: 6.9.1

Just ran pacman -Syu before testing (there was no KDE package to update as I had recently updated).

Did you make sure NOT to change the view mode before clicking on the other field?
Comment 7 Bug Janitor Service 2025-08-29 03:47:48 UTC
๐Ÿ›๐Ÿงน โš ๏ธ This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information, then set the bug status to REPORTED. If there is no change for at least 30 days, it will be automatically closed as RESOLVED WORKSFORME.

For more information about our bug triaging procedures, please read https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging.

Thank you for helping us make KDE software even better for everyone!
Comment 8 Bug Janitor Service 2025-09-13 03:48:29 UTC
๐Ÿ›๐Ÿงน This bug has been in NEEDSINFO status with no change for at least 30 days. Closing as RESOLVED WORKSFORME.