GNOME Bugzilla – Bug 664458
Copying WebDAV folder to local directory fails
Last modified: 2012-06-13 11:07:41 UTC
System: Linux Redhat enterprise with Nautilus 2.28.4 Setup: - connect to a WebDAV server. For a test I used a free account on http://www.mydrive.net/ - the WebDAV storage contains one folder with one file for testing Action: - I drag the folder from the WebDAV storage to a local directory Expected result: - the folder and the contained file are copied to the local storage Actual result: - The operation shows a progress dialog but the result of the copy operation is a 0-byte file with the name of the folder Analysis: I used wireshark to analyze the network traffic and the problem appears to be that Nautilus sends an HTTP GET request to the folder URL. This causes an error on the server. Per WebDAV spec the client should not send a GET request to the folder URL but only to file URLs. Trace: (1) Nautilus sends a PROPFIND for the folder, this request looks ok and the response states that this is actually a folder (<d:colllection/>) PROPFIND /Sample HTTP/1.1 Host: webdav.mydrive.ch Depth: 0 Content-Type: application/xml Apply-To-Redirect-Ref: F User-Agent: gvfs/1.4.3 Authorization: Basic XXXXXX Content-Length: 235 <?xml version="1.0" encoding="utf-8" ?> <D:propfind xmlns:D="DAV:"> <D:prop> <D:creationdate/> <D:displayname/> <D:getcontentlength/> <D:getcontenttype/> <D:getetag/> <D:getlastmodified/> <D:resourcetype/> </D:prop> </D:propfind>HTTP/1.1 207 Multi-Status Date: Mon, 21 Nov 2011 09:51:20 GMT Server: Apache/2.2.16 (Debian) DAV: 1, 3, extended-mkcol, 2 Vary: Accept-Encoding Content-Length: 616 Connection: close Content-Type: application/xml; charset=utf-8 <?xml version="1.0" encoding="utf-8"?> <d:multistatus xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns"><d:response><d:href>/Sample/</d:href><d:propstat><d:prop><d:getlastmodified xmlns:b="urn:uuid:c2f41010-65b3-11d1-a29f-00aa00c14882/" b:dt="dateTime.rfc1123">Thu, 17 Nov 2011 16:06:16 +0000</d:getlastmodified><d:resourcetype><d:collection/></d:resourcetype></d:prop><d:status>HTTP/1.1 200 Ok</d:status></d:propstat><d:propstat><d:prop><d:creationdate/><d:displayname/><d:getcontentlength/><d:getcontenttype/><d:getetag/></d:prop><d:status>HTTP/1.1 404 Not Found</d:status></d:propstat></d:response></d:multistatus> (2) The next request is a GET on the folder URL. The server responds with an "error", in this case a redirect to some help page. This GET request seems to be the cause of the problem: GET /Sample HTTP/1.1 Host: webdav.mydrive.ch User-Agent: gvfs/1.4.3 Authorization: Basic XXXX HTTP/1.1 302 Found Date: Mon, 21 Nov 2011 09:51:20 GMT Server: Apache/2.2.16 (Debian) Location: http://www.mydrive.ch/help#webdav Content-Length: 0 Connection: close Content-Type: text/plain; charset=utf-8 I can see the errorneous behavious on other WebDAV implementations, too
-> gvfs Which version of gvfs does your RHEL ship with? This might as well be fixed already in a newer gvfs version; it's better to ask for support on the RedHat bugzilla for issues on old versions of upstream components.
Per HTTP header the GVS version is gvfs/1.4.3 Is there a better way to get a more detailed version description via the command line?
(In reply to comment #2) > Per HTTP header the GVS version is gvfs/1.4.3 > > Is there a better way to get a more detailed version description via the > command line? Yeah, "yum info gvfs" would give you more information.
Version info is: Name : gvfs Arch : x86_64 Version : 1.4.3 Release : 12.el6 Size : 4.6 M Repo : installed From repo : ftp3-updates Summary : Backends for the gio framework in GLib URL : http://www.gtk.org License : LGPLv2+ Description : The gvfs package provides backend implementations for the gio : framework in GLib. It includes ftp, sftp, cifs. Available Packages Name : gvfs Arch : i686 Version : 1.4.3 Release : 12.el6 Size : 909 k Repo : ftp3-updates Summary : Backends for the gio framework in GLib URL : http://www.gtk.org License : LGPLv2+ Description : The gvfs package provides backend implementations for the gio : framework in GLib. It includes ftp, sftp, cifs.
Is there any update on this bug? I would like to find a fix for this soon.
I cannot reproduce this bug with the latest version. I have version 1.12.0-0ubuntu6 and copying a webdav directory (either via drag and drop or with copy/paste) works as expected by copying every files and directories inside it.
Eric which version do you have exactly? Can you do "yum info gvfs"? Maybe you have 1.12.???
(In reply to comment #6) > I cannot reproduce this bug with the latest version. I have version > 1.12.0-0ubuntu6 and copying a webdav directory (either via drag and drop or > with copy/paste) works as expected by copying every files and directories > inside it. Eric which version do you have exactly? Can you do "yum info gvfs"? Maybe you have 1.12.???
David, as mentioned in the comment that you cited, I'm using version 1.12.0. Tonight, I've tried with 1.12.1, and I can confirm it works as well, at least with the webdav server on which I have an account.
This most probably is a dup of bug 551339. The fix for that bug went into the 1.9.1. release. I am marking it as a duplicated now. If you find I am mistaken please reopen (and please provide an update log output - export GVFS_HTTP_DEBUG=all && /usr/libexec/gvfsd --replace). *** This bug has been marked as a duplicate of bug 551339 ***