Bug 477834 - Dolphin crashed on accessing folder mounted over WebDAV
Summary: Dolphin crashed on accessing folder mounted over WebDAV
Status: REPORTED
Alias: None
Product: dolphin
Classification: Applications
Component: general (show other bugs)
Version: 23.08.3
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: Dolphin Bug Assignee
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2023-12-01 13:03 UTC by zylsjsp
Modified: 2023-12-08 13:29 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
error: unable to connect (262.50 KB, image/png)
2023-12-08 11:22 UTC, zylsjsp
Details

Note You need to log in before you can comment on or make changes to this bug.
Description zylsjsp 2023-12-01 13:03:46 UTC
Application: dolphin (23.08.3)

Qt Version: 5.15.11
Frameworks Version: 5.112.0
Operating System: Linux 6.6.3-arch1-1 x86_64
Windowing System: Wayland
Distribution: "Arch Linux"
DrKonqi: 5.27.9 [KCrashBackend]

-- Information about the crash:
Dolphin crashed sometimes when opening intergrated terminal on a folder mounted to WebDAV

The crash can be reproduced sometimes.

-- Backtrace:
Application: Dolphin (dolphin), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = <optimized out>}
[KCrash Handler]
#6  0x000055e7212cc612 in TerminalPanel::sendCdToTerminal(QString const&, TerminalPanel::HistoryPolicy) (this=this@entry=0x55e7218ffce0, dir=..., addToHistory=addToHistory@entry=TerminalPanel::HistoryPolicy::AddToHistory) at /usr/src/debug/dolphin/dolphin-23.08.3/src/panels/terminal/terminalpanel.cpp:241
#7  0x000055e7212cca22 in operator() (watcher=<optimized out>, __closure=<optimized out>) at /usr/src/debug/dolphin/dolphin-23.08.3/src/panels/terminal/terminalpanel.cpp:269
#8  QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QDBusPendingCallWatcher*>, void, TerminalPanel::sendCdToTerminalKIOFuse(const QUrl&)::<lambda(QDBusPendingCallWatcher*)> >::call (arg=<optimized out>, f=<optimized out>) at /usr/include/qt/QtCore/qobjectdefs_impl.h:146
#9  QtPrivate::Functor<TerminalPanel::sendCdToTerminalKIOFuse(const QUrl&)::<lambda(QDBusPendingCallWatcher*)>, 1>::call<QtPrivate::List<QDBusPendingCallWatcher*>, void> (arg=<optimized out>, f=<optimized out>) at /usr/include/qt/QtCore/qobjectdefs_impl.h:256
#10 QtPrivate::QFunctorSlotObject<TerminalPanel::sendCdToTerminalKIOFuse(const QUrl&)::<lambda(QDBusPendingCallWatcher*)>, 1, QtPrivate::List<QDBusPendingCallWatcher*>, 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/qt/QtCore/qobjectdefs_impl.h:443
#11 0x00007ffae6ed1097 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fffed6dd180, r=<optimized out>, this=0x55e7220a3c80, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#12 doActivate<false>(QObject*, int, void**) (sender=0x55e7227a2280, signal_index=3, argv=0x7fffed6dd180) at kernel/qobject.cpp:3925
#13 0x00007ffae8172ad4 in QDBusPendingCallWatcher::finished(QDBusPendingCallWatcher*) (this=<optimized out>, _t1=<optimized out>) at .moc/moc_qdbuspendingcall.cpp:158
#14 0x00007ffae6ec3bd4 in QObject::event(QEvent*) (this=0x55e7227a2280, e=0x55e7220dd5c0) at kernel/qobject.cpp:1347
#15 0x00007ffae7b788ff in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55e7227a2280, e=0x55e7220dd5c0) at kernel/qapplication.cpp:3640
#16 0x00007ffae6e9c168 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55e7227a2280, event=0x55e7220dd5c0) at kernel/qcoreapplication.cpp:1064
#17 0x00007ffae6ea10cb in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x55e72155c550) at kernel/qcoreapplication.cpp:1821
#18 0x00007ffae6ee7138 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x55e7215c4810) at kernel/qeventdispatcher_glib.cpp:277
#19 0x00007ffae4b0df69 in g_main_dispatch (context=0x7ffadc000ec0) at ../glib/glib/gmain.c:3476
#20 0x00007ffae4b6c327 in g_main_context_dispatch_unlocked (context=0x7ffadc000ec0) at ../glib/glib/gmain.c:4284
#21 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7ffadc000ec0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4349
#22 0x00007ffae4b0c162 in g_main_context_iteration (context=0x7ffadc000ec0, may_block=1) at ../glib/glib/gmain.c:4414
#23 0x00007ffae6eeaf7c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55e7215c7c80, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#24 0x00007ffae6e9ae74 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffed6dd5e0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#25 0x00007ffae6e9c313 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#26 0x00007ffae733bf12 in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1870
#27 0x00007ffae7b76cda in QApplication::exec() () at kernel/qapplication.cpp:2832
#28 0x000055e721297db8 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/dolphin/dolphin-23.08.3/src/main.cpp:255
[Inferior 1 (process 123467) detached]

Reported using DrKonqi
Comment 1 zylsjsp 2023-12-01 13:11:31 UTC
Same issue again. Backtrace only differs in program address, and symbols are all the same. 
This time I was opening a intergrated terminal in dolphin, noticed shell didn't cd to directory under /run/user/1000/kio-*/ , and dolphin crashed after a while.
Comment 2 Akseli Lahtinen 2023-12-04 13:34:54 UTC
I can't get Dolphin to crash, I just get following in the integrated terminal/;

bash: cd: /run/user/1000/kio-fuse-EXEgPW/remote/nextcloud: Input/output error

Wonder if this is distro specific? I'm on Fedora KDE 39.

I tried both Plasma 6 and Plasma 5, both do not crash.
Comment 3 Akseli Lahtinen 2023-12-04 13:47:30 UTC
Tested same on  freshly installed Arch Linux VM, could not reproduce. Same thing happens as with my previous comment.
Comment 4 Akseli Lahtinen 2023-12-08 08:13:29 UTC
Could you try to reproduce this in Plasma 6? You can use Plasma 6 in virtual machine, such as KDE Neon Unstable, to see if it happens. If it does, please install also debug symbols for dolphin, kio and kio-extras and send a backtrace. Thank you!
Comment 5 zylsjsp 2023-12-08 11:22:26 UTC
Created attachment 164004 [details]
error: unable to connect

(In reply to Akseli Lahtinen from comment #4)
> Could you try to reproduce this in Plasma 6? You can use Plasma 6 in virtual
> machine, such as KDE Neon Unstable, to see if it happens. If it does, please
> install also debug symbols for dolphin, kio and kio-extras and send a
> backtrace. Thank you!

Sorry to tell I failed to reproduce this in Plasma 6.
I'm testing on my qemu arch vm, but the network folder wizard tells me an error that it's unable to connect to server.
Through the background you can see the firefox works well.
Comment 6 Akseli Lahtinen 2023-12-08 12:47:32 UTC
That's odd.. 

Can you connect to it by just typing webdav://address:port to the location bar of Dolphin?
Comment 7 zylsjsp 2023-12-08 13:29:25 UTC
(In reply to Akseli Lahtinen from comment #6)
> That's odd.. 
> 
> Can you connect to it by just typing webdav://address:port to the location
> bar of Dolphin?

Prompts (In reply to Akseli Lahtinen from comment #6)
> That's odd.. 
> 
> Can you connect to it by just typing webdav://address:port to the location
> bar of Dolphin?

(In reply to Akseli Lahtinen from comment #6)
> That's odd.. 
> 
> Can you connect to it by just typing webdav://address:port to the location
> bar of Dolphin?

No. Prompts file or folder does not exist. And same url can be accessed in my host computer's dolphin, with a prompt asking for my webdav user & pass.
BTW I also noticed the internal command prompt of dolphin can't cd to some very long path ( common in my torrent directory ). The bug causes the dolphin end up with a status that the file window cancels to enter the false path while the command shell actually changed the right path.
More exactly, as I opened `/run/media/zentino/Data/Torrent/[DMG&VCB-Studio] BOCCHI THE ROCK! [Ma10p_1080p]/CDs/[230522] 「光の中へ」/結束バンド [24bit_48kHz] (flac)` , the fake path is `/run/media/zentino/Data/Torrent/[DMG&VCB-Studio] BOCCHI THE ROCK! [Ma10p_1080p]/CDs/[230522] 「光の中へ」/結束バンド [24bit_48kHz] )/` , and the issue is not with another path `/run/media/zentino/Data/Torrent/[DMG&VCB-Studio] BOCCHI THE ROCK! [Ma10p_1080p]/CDs/[230524] 「光の中へ」/結束バンド (flac+webp)/` , which is a few characters less. I hope this information will help you to determine which code the bug is from.