[Swift-devel] Re: File names in gridftp provider seem to need an extra leading /
Mihael Hategan
hategan at mcs.anl.gov
Wed Nov 10 15:59:04 CST 2010
On Wed, 2010-11-10 at 14:35 -0600, Michael Wilde wrote:
> Both when I map files to a physical name starting with gsiftp://, and
> when I copy files using the swift version of globus-url-copy, I seem
> to need an extra "/" at the start of the file's pathname.
Absolute paths need an extra "/". The first one (i.e. the one between
the host name and the path name) is considered a separator and not
counted as part of the path name.
Mihael
>
> Here's an example of the issue from within a .swift script:
>
> login1$ swift -config cf -sites.file sites.xml -tc.file tc.data gcat.swift
> Swift svn swift-r3702 (swift modified locally) cog-r2924 (cog modified locally)
>
> RunID: 20101110-1426-uouuvdf1
> Progress:
> Failed to transfer wrapper log from gcat-20101110-1426-uouuvdf1/info/g on localhost
> Execution failed:
> Exception in cp:
> Arguments: [etc/group, home/wilde/godata/gridoutput.txt]
> Host: localhost
> Directory: gcat-20101110-1426-uouuvdf1/jobs/g/cp-g3yt5f1k
> stderr.txt:
>
> stdout.txt:
>
> ----
>
> Caused by:
> org.globus.cog.abstraction.impl.file.FileResourceException: Failed to retrieve file information about etc/group
> ^^^^^^^^^
> Caused by:
> Server refused performing the request. Custom message: Server refused MLST command (error code 1) [Nested exception message: Custom message: Unexpected reply: 500-Command failed : globus_gridftp_server_file.c:globus_l_gfs_file_stat:389:
> 500-System error in stat: No such file or directory
> 500-A system call failed: No such file or directory
> 500 End.]
> login1$ cat gcat.swift
>
> type file;
>
> app (file o) copy (file i)
> {
> cp @i @o;
> }
>
> file f1<"gsiftp://pf-grid.unl.edu/etc/group">;
> file f2<"gsiftp://gridftp.pads.ci.uchicago.edu/home/wilde/godata/gridoutput.txt">;
> f2 = copy(f1);
> login1$
>
> When I put 2 slashes after the hostname in the URIs above, it works.
>
> A similar issue occurs using Swift globus-url-copy, using the file:// protocol. Rather then the usual 3 slashes after file:, I need *4*. With 3, it looks (in my test) for etc/group instead of /etc/group. With 4 it works. With 2, it drops of etc entirely and looks for the file "group".
>
> Are both of these the normal/expected behavior from the Swift gridftp code, or is this an error?
>
> - Mike
>
More information about the Swift-devel
mailing list