Bug 352759 - Populating the item size of directories in detailed view for an nfs mount is very slow and causes dolphin to lag while scrolling.
Summary: Populating the item size of directories in detailed view for an nfs mount is ...
Status: RESOLVED FIXED
Alias: None
Product: dolphin
Classification: Applications
Component: view-engine: details mode (show other bugs)
Version: 16.12.2
Platform: Arch Linux Linux
: NOR normal
Target Milestone: ---
Assignee: Dolphin Bug Assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-09-15 17:06 UTC by kde
Modified: 2020-10-29 08:55 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
trace with debug compiled in. (8.83 KB, text/x-log)
2015-09-17 23:41 UTC, kde
Details

Note You need to log in before you can comment on or make changes to this bug.
Description kde 2015-09-15 17:06:51 UTC
Dolphin Version 15.08.0
Using:
KDE Frameworks 5.13.0
Qt 5.5.0 (built against 5.5.0)
The xcb windowing system
Client and nfs server running Archlinux with Linux 4.1.6-1-ARCH #1 SMP PREEMPT Mon Aug 17 08:52:28 CEST 2015 x86_64 GNU/Linux

I have an nfsv4 directory mounted at /mnt/storage via fstab at boot.  It containes dozens of folders. Some of which have  dozen to hundreds of sub items (folders and files).  If I open a directory in detailed view that has sub directories  dolphin is very slow in displaying the XXX items in the size column.  If i try to scroll down the browser lags as  it calculates the XXX items for the newly displayed sub directories.   I would say its about 1-2s lag time for every "page" as i scroll down exposing more directories.  File sizes show up instantly.   I do not see the behavior when not in detailed view.  I do not see it when viewing the local SSD.   

I dont think its an nfs sever problem because I still have dolphin Version 14.12.3 Using KDE Development Platform 4.14.11 installed.  If i open those same directories the size column is populated instantly and no scroll lagging. 

Preview is turned off.  
Expandable folders is turned off, but it doesnt make a differnce if turned on.  
Places pane; is displayed, but doesnt make a differnce if its turned off.


Reproducible: Always

Steps to Reproduce:
1. Have an nfs server with directories and files in them.
For testing i created a test directory with:  for x in {00..100}; do mkdir bar$x; for y in {00..99}; do touch bar$x/$y;done;done 

2. Open dolphin
3. Goto target directory in detailed view
4. Try to scroll down and watch as items populate and the scroll lags/hangs until it catches up.

Actual Results:  
It slowly populates the directory item counts and once it does, dolphin is fully responsive and snappy.

Expected Results:  
It should not lag that long or populate so slowly.

org.kde.kurifilter-shorturi: "/mnt/storage/foo/"
org.kde.kurifilter-shorturi: (2) path=cmd= "/mnt/storage/foo/"
org.kde.kurifilter-shorturi: path = "/mnt/storage/foo/"  isLocalFullPath= true  exists= true  url= QUrl("file:///mnt/storage/foo/")
org.kde.kurifilter-ikws: "/mnt/storage/foo/" : QUrl("file:///mnt/storage/foo/") , type = 2
[New Thread 0x7fffd6c5d700 (LWP 31960)]
^Z
Program received signal SIGTSTP, Stopped (user).
0x00007ffff781291d in nanosleep () from /usr/lib/libc.so.6
(gdb) thread apply all backtrace

Thread 8 (Thread 0x7fffd6c5d700 (LWP 31960)):
#0  0x00007fffece43428 in pthread_cond_timedwait@@GLIBC_2.3.2 ()
   from /usr/lib/libpthread.so.0
#1  0x00007ffff1a28c66 in QWaitCondition::wait(QMutex*, unsigned long) ()
   from /usr/lib/libQt5Core.so.5
#2  0x00007ffff1a24723 in ?? () from /usr/lib/libQt5Core.so.5
#3  0x00007ffff1a27a9e in ?? () from /usr/lib/libQt5Core.so.5
#4  0x00007fffece3d4a4 in start_thread () from /usr/lib/libpthread.so.0
#5  0x00007ffff784313d in clone () from /usr/lib/libc.so.6

Thread 3 (Thread 0x7fffd7af6700 (LWP 31948)):
#0  0x00007ffff783a18d in poll () from /usr/lib/libc.so.6
#1  0x00007fffec70ac7c in ?? () from /usr/lib/libglib-2.0.so.0
#2  0x00007fffec70ad8c in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#3  0x00007ffff1c5f23f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#4  0x00007ffff1c0626a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/libQt5Core.so.5
---Type <return> to continue, or q <return> to quit---
#5  0x00007ffff1a22af4 in QThread::exec() () from /usr/lib/libQt5Core.so.5
#6  0x00007ffff1a27a9e in ?? () from /usr/lib/libQt5Core.so.5
#7  0x00007fffece3d4a4 in start_thread () from /usr/lib/libpthread.so.0
#8  0x00007ffff784313d in clone () from /usr/lib/libc.so.6

Thread 2 (Thread 0x7fffdf012700 (LWP 31947)):
#0  0x00007ffff783a18d in poll () from /usr/lib/libc.so.6
#1  0x00007fffea5a8ae2 in ?? () from /usr/lib/libxcb.so.1
#2  0x00007fffea5aa757 in xcb_wait_for_event () from /usr/lib/libxcb.so.1
#3  0x00007fffe137aca9 in ?? () from /usr/lib/libQt5XcbQpa.so.5
#4  0x00007ffff1a27a9e in ?? () from /usr/lib/libQt5Core.so.5
#5  0x00007fffece3d4a4 in start_thread () from /usr/lib/libpthread.so.0
#6  0x00007ffff784313d in clone () from /usr/lib/libc.so.6

Thread 1 (Thread 0x7ffff7ee4800 (LWP 31943)):
#0  0x00007ffff781291d in nanosleep () from /usr/lib/libc.so.6
#1  0x00007ffff1ad82ad in ?? () from /usr/lib/libQt5Core.so.5
#2  0x00007ffff1a26e98 in QThread::msleep(unsigned long) () from /usr/lib/libQt5Core.so.5
#3  0x00007ffff3c105c6 in ?? () from /usr/lib/libKF5CoreAddons.so.5
---Type <return> to continue, or q <return> to quit---
#4  0x00007ffff3c1097b in ?? () from /usr/lib/libKF5CoreAddons.so.5
#5  0x00007ffff3c110e9 in ?? () from /usr/lib/libKF5CoreAddons.so.5
#6  0x00007ffff74d41ce in ?? () from /usr/lib/libdolphinprivate.so.5
#7  0x00007ffff1c37eb1 in QObject::event(QEvent*) () from /usr/lib/libQt5Core.so.5
#8  0x00007ffff2dd300c in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/libQt5Widgets.so.5
#9  0x00007ffff2dd84e6 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/libQt5Widgets.so.5
#10 0x00007ffff1c0889b in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /usr/lib/libQt5Core.so.5
#11 0x00007ffff1c0ac96 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQt5Core.so.5
#12 0x00007ffff1c5ee33 in ?? () from /usr/lib/libQt5Core.so.5
#13 0x00007fffec70a9fd in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#14 0x00007fffec70ace0 in ?? () from /usr/lib/libglib-2.0.so.0
#15 0x00007fffec70ad8c in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#16 0x00007ffff1c5f23f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#17 0x00007ffff1c0626a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/libQt5Core.so.5
#18 0x00007ffff1c0e20c in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
#19 0x00007ffff7b5dda4 in kdemain () from /usr/lib/libkdeinit5_dolphin.so
#20 0x00007ffff777a610 in __libc_start_main () from /usr/lib/libc.so.6
#21 0x0000000000400779 in _start ()
(gdb)
Comment 1 Frank Reininghaus 2015-09-15 20:27:26 UTC
Thanks for the bug report! Looks like it might be related to bug 352348.

It's great that you got a backtrace! Could you install debugging packages for Dolphin, KCoreAddons and Qt, and generate a new one, which might provide some more clues about the cause of the problem? Thanks for your help!
Comment 2 kde 2015-09-17 23:41:33 UTC
Created attachment 94621 [details]
trace with debug compiled in.

sorry for the delay, attached is the trace with debugging enabled.
Comment 3 Attila 2018-06-06 13:08:29 UTC
(In reply to kde from comment #2)
> Created attachment 94621 [details]
> trace with debug compiled in.
> 
> sorry for the delay, attached is the trace with debugging enabled.

Hi,

is this bug solved for you or does it still exist?
If it exists, you can have a look at bug 364053.
Comment 4 Justin Zobel 2020-10-25 01:37:28 UTC
I've just tested with your example folder/file creation on 20.08.1, in my NFS dir it's not showing total folder counts as I'm guessing they have disabled them for remote mounted folders.

Can you pleaser retest with the most up to date Dolphin in your distro repository and confirm if it is still an issue.
Comment 5 Attila 2020-10-29 08:28:40 UTC
(In reply to Justin Zobel from comment #4)

> Can you pleaser retest with the most up to date Dolphin in your distro
> repository and confirm if it is still an issue.

Hi,

I have just tested with Dolphin 20.04.01 on Fedora 32 and it works.
I think you can close this report.