https://bugs.kde.org/show_bug.cgi?id=514161

            Bug ID: 514161
           Summary: [ANR] Dolphin Freezes When Connecting to Unresponsive
                    WebDAV Server
    Classification: Applications
           Product: dolphin
      Version First 25.12.0
       Reported In:
          Platform: Fedora RPMs
                OS: Linux
            Status: REPORTED
          Keywords: drkonqi
          Severity: crash
          Priority: NOR
         Component: general
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected]
  Target Milestone: ---

Application: dolphin (25.12.0)

ApplicationNotResponding [ANR]: true
Qt Version: 6.10.1
Frameworks Version: 6.21.0
Operating System: Linux 6.17.12-300.fc43.x86_64 x86_64
Windowing System: Wayland
Distribution: "Fedora Linux 43 (KDE Plasma Desktop Edition)"
DrKonqi: 6.5.4 [CoredumpBackend]

-- Information about the crash:
The interface for Dolphin becomes unresponsive when trying to interface with an
unresponsive WebDAV file server mounted with rclone, forcing me to kill Dolphin
from the unresponsive window popup.

I have mounted a [copyparty](https://github.com/9001/copyparty) file server
using rclone following the project's
[documentation](https://github.com/9001/copyparty/blob/hovudstraum/docs/rclone.md#on-unix-clients).
This works fine, including the mount automatically showing up in the "Remote"
section on the left sidebar. However, if the copyparty server is terminated or
the connection drops while a Dolphin window has the remote directory open, the
entire Dolphin UI becomes unresponsive. I would expect Dolphin to show some
kind of loading spinner or other placeholder, while allowing me to navigate
somewhere else if the requested location can't be loaded, instead of becoming
unresponsive and forcing me to close it.

I have briefly tested equivalent operations in the command line (e.g., trying
to `ls` the copyparty directory while disconnected, interrupting the connection
while `mv`'ing a file, etc.), and the behavior seems to be that `rclone` will
indefinitely wait for the connection to return, blocking in the meantime. I
guess this is fine for command-line applications, but it's a bummer when the UI
of a GUI application freezes when a drive becomes unresponsive.

The crash can be reproduced every time.

-- Backtrace (Reduced):
#5  0x00007ff9ffcdbd69 in qAtomicDetach<QUrlPrivate> (d=@0x7ffec8d2b4a8:
0x55c7ffdf5380) at
/usr/src/debug/qt6-qtbase-6.10.1-3.fc43.x86_64/src/corelib/thread/qatomic.h:206
[...]
#7  0x00007ff9ffce1b71 in QUrl::adjusted (this=this@entry=0x7ffec8d2b518,
options=options@entry=...) at
/usr/src/debug/qt6-qtbase-6.10.1-3.fc43.x86_64/src/corelib/io/qurl.cpp:2916
#8  0x00007ffa02c4e95b in DolphinView::observeCreatedDirectory
(this=0x55c80068d960, newDirectoryUrl=...) at
/usr/src/debug/dolphin-25.12.0-1.fc43.x86_64/src/views/dolphinview.cpp:1848
#9  0x00007ff9ffd6759a in QtPrivate::QSlotObjectBase::call
(this=0x55c80068df90, r=0x55c80068d960, a=0x7ffec8d2b6a0) at
/usr/src/debug/qt6-qtbase-6.10.1-3.fc43.x86_64/src/corelib/kernel/qobjectdefs_impl.h:461
#10 doActivate<false> (sender=0x7ffa02d30d40
<QGlobalStatic<QtGlobalStatic::Holder<(anonymous
namespace)::Q_QGS_s_DolphinNewFileMenuObserver> >::instance()::holder>,
signal_index=<optimized out>, argv=argv@entry=0x7ffec8d2b6a0) at
/usr/src/debug/qt6-qtbase-6.10.1-3.fc43.x86_64/src/corelib/kernel/qobject.cpp:4257
[...]
#13 DolphinNewFileMenuObserver::directoryCreated (this=<optimized out>,
_t1=...) at
/usr/src/debug/dolphin-25.12.0-1.fc43.x86_64/redhat-linux-build/src/dolphinprivate_autogen/include/moc_dolphinnewfilemenuobserver.cpp:143
#14 0x00007ff9ffd6759a in QtPrivate::QSlotObjectBase::call
(this=0x55c80016dad0, r=0x7ffa02d30d40
<QGlobalStatic<QtGlobalStatic::Holder<(anonymous
namespace)::Q_QGS_s_DolphinNewFileMenuObserver> >::instance()::holder>,
a=0x7ffec8d2b7a0) at
/usr/src/debug/qt6-qtbase-6.10.1-3.fc43.x86_64/src/corelib/kernel/qobjectdefs_impl.h:461
#15 doActivate<false> (sender=0x55c800159100, signal_index=<optimized out>,
argv=argv@entry=0x7ffec8d2b7a0) at
/usr/src/debug/qt6-qtbase-6.10.1-3.fc43.x86_64/src/corelib/kernel/qobject.cpp:4257
[...]
#18 KNewFileMenu::directoryCreated (this=this@entry=0x55c800159100, _t1=...) at
/usr/src/debug/kf6-kio-6.21.0-1.fc43.x86_64/redhat-linux-build/src/filewidgets/KF6KIOFileWidgets_autogen/include/moc_knewfilemenu.cpp:212
#19 0x00007ffa02aded93 in KNewFileMenu::slotResult (this=0x55c800159100,
job=0x55c8010204d0) at
/usr/src/debug/kf6-kio-6.21.0-1.fc43.x86_64/src/filewidgets/knewfilemenu.cpp:1799
#20 0x00007ff9ffd6759a in QtPrivate::QSlotObjectBase::call
(this=0x55c801020810, r=0x55c800159100, a=0x7ffec8d2ba20) at
/usr/src/debug/qt6-qtbase-6.10.1-3.fc43.x86_64/src/corelib/kernel/qobjectdefs_impl.h:461
#21 doActivate<false> (sender=0x55c8010204d0, signal_index=<optimized out>,
argv=argv@entry=0x7ffec8d2ba20) at
/usr/src/debug/qt6-qtbase-6.10.1-3.fc43.x86_64/src/corelib/kernel/qobject.cpp:4257
[...]
#24 KJob::result (this=this@entry=0x55c8010204d0, _t1=<optimized out>,
_t1@entry=0x55c8010204d0, _t2=...) at
/usr/src/debug/kf6-kcoreaddons-6.21.0-1.fc43.x86_64/redhat-linux-build/src/lib/KF6CoreAddons_autogen/include/moc_kjob.cpp:475
#25 0x00007ffa01b7001b in KJob::finishJob (this=0x55c8010204d0,
emitResult=<optimized out>) at
/usr/src/debug/kf6-kcoreaddons-6.21.0-1.fc43.x86_64/src/lib/jobs/kjob.cpp:115
#26 0x00007ff9ffd6759a in QtPrivate::QSlotObjectBase::call
(this=0x55c8008bbe20, r=0x55c8010204d0, a=0x7ffec8d2bae8) at
/usr/src/debug/qt6-qtbase-6.10.1-3.fc43.x86_64/src/corelib/kernel/qobjectdefs_impl.h:461
#27 doActivate<false> (sender=0x55c800732a90, signal_index=<optimized out>,
argv=0x7ffec8d2bae8, argv@entry=0x0) at
/usr/src/debug/qt6-qtbase-6.10.1-3.fc43.x86_64/src/corelib/kernel/qobject.cpp:4257


Reported using DrKonqi

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to