Dolphin and taskbar freeze when phone running KDE connect locks

Any time I’m accessing my phones file system with KDE connect through dolphin and the phone locks, causing dolphin to lose file-system access both dolphin and the taskbar freeze.
It’s not a huge deal since I don’t use the feature often, but figure if it’s happening to me it’s likely happening to others who actually do frequently use the feature.

I’m gonna look into how to get log info to add it here

when trying to make it happen the taskbar doesn’t freeze, but only dolphin. If anyone knows how to get any kind of logs that could help I would be very grateful.

“journalctl -f | grep --line-buffered dolphin” showed no out of the ordinary info

“strace dolphin” caused even weirder behavior. after it stops responding the folder then requires dolphin to run as admin to access.

The one think you could do is to use gdb as dolphin is locked (or plasma).

That would be sudo gdb --pid $(pidof dolphin) with debuginfod enabled.
Then hit return until you see (gdb) line prompt, then type in bt (for backtrace) and report what’s outputed.
That will tell us what is the code that needs fixing.

#0  0x00007f324def4a2b in readlink () at /lib64/libc.so.6
#1  0x00007f324de288f0 in realpath@@GLIBC_2.3 () at /lib64/libc.so.6
#2  0x00007f324e6a906f in QFileSystemEngine::canonicalName(QFileSystemEntry const&, QFileSystemMetaData&) () at /lib64/libQt6Core.so.6
#3  0x00007f324e4a35c9 in QFileInfoPrivate::getFileName(QAbstractFileEngine::FileName) const () at /lib64/libQt6Core.so.6
#4  0x00007f324e4a3a55 in QFileInfo::canonicalFilePath() const () at /lib64/libQt6Core.so.6
#5  0x00007f3250a6cec8 in KCoreDirListerCache::listDir(KCoreDirLister*, QUrl const&, bool, bool) [clone .isra.0] () at /lib64/libKF6KIOCore.so.6
#6  0x00007f3250a26605 in KCoreDirLister::openUrl(QUrl const&, QFlags<KCoreDirLister::OpenUrlFlag>) () at /lib64/libKF6KIOCore.so.6
#7  0x00007f3250fe178d in DolphinView::setUrl(QUrl const&) () at /lib64/libdolphinprivate.so.6
#8  0x0000564e63b0945e in DolphinViewContainer::slotUrlNavigatorLocationChanged(QUrl const&) ()
#9  0x00007f324e55a26e in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt6Core.so.6
#10 0x00007f3250ea2a8c in KUrlNavigator::urlChanged(QUrl const&) () at /lib64/libKF6KIOFileWidgets.so.6
#11 0x00007f3250ea363a in QtPrivate::QCallableObject<KUrlNavigatorPrivate::KUrlNavigatorPrivate(QUrl const&, KUrlNavigator*, KFilePlacesModel*)::{lambda()#1}, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) [clone .lto_priv.0] () at /lib64/libKF6KIOFileWidgets.so.6
#12 0x00007f324e55a26e in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt6Core.so.6
#13 0x00007f3250bdc324 in KCoreUrlNavigator::setCurrentLocationUrl(QUrl const&) () at /lib64/libKF6KIOGui.so.6
#14 0x00007f3250ea0c4d in KUrlNavigator::setLocationUrl(QUrl const&) () at /lib64/libKF6KIOFileWidgets.so.6
#15 0x00007f324e55a26e in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt6Core.so.6
#16 0x00007f3250ea2a8c in KUrlNavigator::urlChanged(QUrl const&) () at /lib64/libKF6KIOFileWidgets.so.6
#17 0x00007f3250ea363a in QtPrivate::QCallableObject<KUrlNavigatorPrivate::KUrlNavigatorPrivate(QUrl const&, KUrlNavigator*, KFilePlacesModel*)::{lambda()#1}, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) [clone .lto_priv.0] () at /lib64/libKF6KIOFileWidgets.so.6
#18 0x00007f324e55a26e in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt6Core.so.6
#19 0x00007f3250bdc324 in KCoreUrlNavigator::setCurrentLocationUrl(QUrl const&) () at /lib64/libKF6KIOGui.so.6
#20 0x00007f3250ea0c4d in KUrlNavigator::setLocationUrl(QUrl const&) () at /lib64/libKF6KIOFileWidgets.so.6
#21 0x00007f324e55a26e in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt6Core.so.6

1 Like

This isn’t exactly what I was expecting, so it is even more helpful.
Thanks.

Could you share also the lines below #21 ?

had already closed everything so had repeat everything, and there are a few differences this time.

#0  0x00007f69dc6f4eae in statx () at /lib64/libc.so.6
#1  0x00007f69dcea9d4d in QFileSystemEngine::fillMetaData(QFileSystemEntry const&, QFileSystemMetaData&, QFlags<QFileSystemMetaData::MetaDataFlag>) () at /lib64/libQt6Core.so.6
#2  0x00007f69dcc85167 in QDir::exists() const () at /lib64/libQt6Core.so.6
#3  0x000055f6d820b929 in DolphinViewContainer::slotCurrentDirectoryRemoved() ()
#4  0x00007f69dcd5a26e in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt6Core.so.6
#5  0x00007f69dcd5a26e in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt6Core.so.6
#6  0x00007f69df6789a8 in KFileItemModel::slotItemsDeleted(KFileItemList const&) () at /lib64/libdolphinprivate.so.6
#7  0x00007f69dcd5a26e in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt6Core.so.6
#8  0x00007f69df13cbfc in KCoreDirLister::itemsDeleted(KFileItemList const&) () at /lib64/libKF6KIOCore.so.6
#9  0x00007f69df138c81 in KCoreDirListerCache::deleteDir(QUrl const&) () at /lib64/libKF6KIOCore.so.6
#10 0x00007f69df138fa8 in KCoreDirListerCache::itemsDeleted(QList<KCoreDirLister*> const&, KFileItemList const&) () at /lib64/libKF6KIOCore.so.6
#11 0x00007f69df12ca06 in KCoreDirListerCache::slotFilesRemoved(QList<QUrl> const&) () at /lib64/libKF6KIOCore.so.6
#12 0x00007f69df135c54 in KCoreDirListerCache::slotFileDeleted(QString const&) () at /lib64/libKF6KIOCore.so.6
#13 0x00007f69dcd5a26e in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt6Core.so.6
#14 0x00007f69deb0216c in KDirWatch::deleted(QString const&) () at /lib64/libKF6CoreAddons.so.6
#15 0x00007f69dcd4b9a2 in QObject::event(QEvent*) () at /lib64/libQt6Core.so.6
#16 0x00007f69dde3d9b8 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt6Widgets.so.6
#17 0x00007f69dccf3590 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt6Core.so.6
#18 0x00007f69dccf6f51 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib64/libQt6Core.so.6
#19 0x00007f69dcfefb5f in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQt6Core.so.6
#20 0x00007f69d98a128c in g_main_context_dispatch_unlocked.lto_priv () at /lib64/libglib-2.0.so.0
#21 0x00007f69d99017b8 in g_main_context_iterate_unlocked.isra () at /lib64/libglib-2.0.so.0
#22 0x00007f69d98a2783 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#23 0x00007f69dcfef2b3 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt6Core.so.6
--Type <RET> for more, q to quit, c to continue without paging--
#24 0x00007f69dcd00993 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt6Core.so.6
#25 0x00007f69dccfbf6e in QCoreApplication::exec() () at /lib64/libQt6Core.so.6
#26 0x000055f6d81e399d in main ()

1 Like

That’s not the same case but with the same origin.

yes.

first made sure KDE connect was running on the phone

then accessed a folder

pushed phone power button to lock phone then waited a few minutes

interacted with dolphin causing it to lock up

then finally ran the commands you said

Noticed it happen until after a few minutes of the screen being off. The phone does a weird thing where it closes backround programs to to save battery (can’t turn it off). I think this “feature” might be involved.

is there a way to bring the previous case back up?didn’t realize there was and closed the terminal window. I’m a major noob when it comes to this stuff.

finally managed to fully recreate the first case. the gdb results seem to match the original ones i posted accept of course continued to the bottom.

#0  0x00007faf8b8f4a2b in readlink () at /lib64/libc.so.6
#1  0x00007faf8b8288f0 in realpath@@GLIBC_2.3 () at /lib64/libc.so.6
#2  0x00007faf8c0a906f in QFileSystemEngine::canonicalName(QFileSystemEntry const&, QFileSystemMetaData&) ()
    at /lib64/libQt6Core.so.6
#3  0x00007faf8bea35c9 in QFileInfoPrivate::getFileName(QAbstractFileEngine::FileName) const () at /lib64/libQt6Core.so.6
#4  0x00007faf8bea3a55 in QFileInfo::canonicalFilePath() const () at /lib64/libQt6Core.so.6
#5  0x00007faf8e36cec8 in KCoreDirListerCache::listDir(KCoreDirLister*, QUrl const&, bool, bool) [clone .isra.0] ()
    at /lib64/libKF6KIOCore.so.6
#6  0x00007faf8e326605 in KCoreDirLister::openUrl(QUrl const&, QFlags<KCoreDirLister::OpenUrlFlag>) ()
    at /lib64/libKF6KIOCore.so.6
#7  0x00007faf8e8e178d in DolphinView::setUrl(QUrl const&) () at /lib64/libdolphinprivate.so.6
#8  0x0000557cf031345e in DolphinViewContainer::slotUrlNavigatorLocationChanged(QUrl const&) ()
#9  0x00007faf8bf5a26e in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt6Core.so.6
#10 0x00007faf8e7a2a8c in KUrlNavigator::urlChanged(QUrl const&) () at /lib64/libKF6KIOFileWidgets.so.6
#11 0x00007faf8e7a363a in QtPrivate::QCallableObject<KUrlNavigatorPrivate::KUrlNavigatorPrivate(QUrl const&, KUrlNavigator*, KFilePlacesModel*)::{lambda()#1}, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) [clone .lto_priv.0] () at /lib64/libKF6KIOFileWidgets.so.6
#12 0x00007faf8bf5a26e in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt6Core.so.6
#13 0x00007faf8e4dc324 in KCoreUrlNavigator::setCurrentLocationUrl(QUrl const&) () at /lib64/libKF6KIOGui.so.6
#14 0x00007faf8e7a0c4d in KUrlNavigator::setLocationUrl(QUrl const&) () at /lib64/libKF6KIOFileWidgets.so.6
#15 0x00007faf8bf5a26e in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt6Core.so.6
#16 0x00007faf8e7a2a8c in KUrlNavigator::urlChanged(QUrl const&) () at /lib64/libKF6KIOFileWidgets.so.6
#17 0x00007faf8e7a363a in QtPrivate::QCallableObject<KUrlNavigatorPrivate::KUrlNavigatorPrivate(QUrl const&, KUrlNavigator*, KFilePlacesModel*)::{lambda()#1}, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) [clone .lto_priv.0] () at /lib64/libKF6KIOFileWidgets.so.6
#18 0x00007faf8bf5a26e in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt6Core.so.6
#19 0x00007faf8e4dc324 in KCoreUrlNavigator::setCurrentLocationUrl(QUrl const&) () at /lib64/libKF6KIOGui.so.6
#20 0x00007faf8e7a0c4d in KUrlNavigator::setLocationUrl(QUrl const&) () at /lib64/libKF6KIOFileWidgets.so.6
#21 0x00007faf8bf5a26e in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt6Core.so.6
#22 0x00007faf8e790562 in KDEPrivate::KUrlNavigatorButton::mouseReleaseEvent(QMouseEvent*) ()
    at /lib64/libKF6KIOFileWidgets.so.6
#23 0x00007faf8d0a40f8 in QWidget::event(QEvent*) () at /lib64/libQt6Widgets.so.6
#24 0x00007faf8d03d9b8 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt6Widgets.so.6
#25 0x00007faf8d048b5b in QApplication::notify(QObject*, QEvent*) () at /lib64/libQt6Widgets.so.6
#26 0x00007faf8bef3590 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt6Core.so.6
#27 0x00007faf8d0470ec in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () at /lib64/libQt6Widgets.so.6
#28 0x00007faf8d0b8b0c in QWidgetWindow::handleMouseEvent(QMouseEvent*) () at /lib64/libQt6Widgets.so.6
#29 0x00007faf8d0bb680 in QWidgetWindow::event(QEvent*) () at /lib64/libQt6Widgets.so.6
#30 0x00007faf8d03d9b8 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt6Widgets.so.6
#31 0x00007faf8bef3590 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt6Core.so.6
#32 0x00007faf8c6eace9 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) ()
    at /lib64/libQt6Gui.so.6
#33 0x00007faf8c75315c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
    at /lib64/libQt6Gui.so.6
#34 0x00007faf8cccac54 in userEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQt6Gui.so.6
#35 0x00007faf88aa128c in g_main_context_dispatch_unlocked.lto_priv () at /lib64/libglib-2.0.so.0
#36 0x00007faf88b017b8 in g_main_context_iterate_unlocked.isra () at /lib64/libglib-2.0.so.0
#37 0x00007faf88aa2783 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#38 0x00007faf8c1ef2b3 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
    at /lib64/libQt6Core.so.6
#39 0x00007faf8bf00993 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt6Core.so.6
--Type <RET> for more, q to quit, c to continue without paging--
#40 0x00007faf8befbf6e in QCoreApplication::exec() () at /lib64/libQt6Core.so.6
#41 0x0000557cf02eb99d in main ()