After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 598092 - gvfsd can time out enumerating long directories
gvfsd can time out enumerating long directories
Status: RESOLVED FIXED
Product: gvfs
Classification: Core
Component: daemon
unspecified
Other Linux
: Normal normal
: ---
Assigned To: gvfs-maint
gvfs-maint
Depends on:
Blocks:
 
 
Reported: 2009-10-11 16:24 UTC by Kenneth Prugh
Modified: 2014-01-23 08:21 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
daemon: Set infinite timeout for enumerate response (2.48 KB, patch)
2013-12-17 12:10 UTC, Ross Lagerwall
committed Details | Review

Description Kenneth Prugh 2009-10-11 16:24:25 UTC
When accessing a folder on my phone over bluetooth about 80% of the time it will fail with this message:

The folder contents could not be displayed.
Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

The folder is quite large, about 120 items. Accessing the folder may work 1 out of 5 times with gvfs, however, using obexftp from the command line works everytime. 

Is there a way to extend the timeout for gvfs when accessing such a folder or some other solution?
Comment 1 Bastien Nocera 2010-02-17 17:07:07 UTC
There's 2 problems here, one is that obex-data-server takes too long to tell us the directory listing, this should be fixed in bug 609340.

The other problem is that there's no way in gvfs to ping back gvfsd to tell it, "I know I'm taking a while, but something's happening".

It should be possible to report progress during an enumeration (currently obexftp would need the full listing before parsing it, but it could tell the front-end "I'm still receiving data").
Comment 2 Ross Lagerwall 2013-12-01 05:59:51 UTC
Dbus methods now have infinite timeouts which means that this has been fixed.
Comment 3 Ross Lagerwall 2013-12-17 12:08:00 UTC
Reopening since the enumerate dbus callbacks don't seem to have infinite timeouts which means that it is possible to have timeouts on large directories.
Comment 4 Ross Lagerwall 2013-12-17 12:10:56 UTC
Created attachment 264407 [details] [review]
daemon: Set infinite timeout for enumerate response

Set an infinite timeout for responses to enumerate() otherwise it can
timeout when enumerating large, slow directories.
Comment 5 Ondrej Holy 2014-01-10 17:31:34 UTC
Review of attachment 264407 [details] [review]:

Looks good, thanks!
Comment 6 Ondrej Holy 2014-01-10 17:31:37 UTC
Review of attachment 264407 [details] [review]:

Looks good, thanks!
Comment 7 Ross Lagerwall 2014-01-23 08:21:25 UTC
Pushed to master as 31129df and stable as 62cadd5. Thanks!