Got folder /pathToNas/some/other which contains about 1400 folders. In detailed view mode entering one of these sooner or later ( mostly first or second one ) leads to frozen dolphin window. Other (dolphin) windows react. Entering same folder via shell or krusader works fine. Last call in strace is begins with write(9, "xxxxxx", 10 where xxxxxx varies and fd 9 is link to a socket. Im on Fedora 18 Kernel 3.8.7-201.fc18.x86_64 kdelibs-4.10.1-1.fc18.x86_64 NFS share is on Synology NAS, connected via gbit-ethernet, no jumbo-frames, default mount options. Reproducible: Always Steps to Reproduce: 1.enter arbitrary folder in /pathToNas/some/other 2. 3. Actual Results: window doesn't react any longer. Can mostly be killed by KDE Expected Results: Open directory
Thanks for the report. If it happens only in Details View, it might be because we count the number of items in all folders (to show it in the "Size" column and to decide whether to show an "expansion toggle" or not). See the related forum discussion http://forum.kde.org/viewtopic.php?f=224&t=110767 The strange thing is that the code actually tries to determine if the folders are local (using KFileItem::isLocalFile()) and counts the items inside only if that is the case. So it seems that this check goes wrong. To verify that: is a "Size" shown for the folders on the remote server? The size column should actually show "Unknown" for remote folders.
Size column shows number of elements in folders. I played around a little bit and got to a limit of about 600 folders, but until now didn't test whether its the amount of folders or if the number of elements in the folders is the limit
OK, probably NFS is considered 'local' from KFileItem's point of view then (according to the API docs, 'local' means 'accessible via file:'). To be honest, I'm not sure if we can do anything about your problem. We could of course disable folder content counting for 'slow' file systems like NFS, but I can already see lots of complaints coming if we do that (like when loading of custom icons was disabled for slow file systems). One could in principle move the counting function to another thread to prevent at least the blocking, but I'm not sure if that's worth the trouble - this approach might cause problems and subtle bugs in other situations.
Git commit 81a6f33a87dfbdd082b2d87be59ac19a65a43771 by Frank Reininghaus. Committed on 04/09/2013 at 19:49. Pushed by freininghaus into branch 'master'. Count the items inside directories in another thread This prevents that the GUI freezes if there are many files inside the directory, or if the access to the directory is slow for some other reason. REVIEW: 111920 FIXED-IN: 4.12.0 M +2 -0 dolphin/src/CMakeLists.txt M +15 -113 dolphin/src/kitemviews/kfileitemmodelrolesupdater.cpp M +5 -11 dolphin/src/kitemviews/kfileitemmodelrolesupdater.h A +164 -0 dolphin/src/kitemviews/private/kdirectorycontentscounter.cpp [License: GPL (v2+)] A +90 -0 dolphin/src/kitemviews/private/kdirectorycontentscounter.h [License: GPL (v2+)] A +95 -0 dolphin/src/kitemviews/private/kdirectorycontentscounterworker.cpp [License: GPL (v2+)] A +71 -0 dolphin/src/kitemviews/private/kdirectorycontentscounterworker.h [License: GPL (v2+)] http://commits.kde.org/kde-baseapps/81a6f33a87dfbdd082b2d87be59ac19a65a43771