[Swift-devel] Problems Re: Example of wrapper staging?
Michael Wilde
wilde at anl.gov
Sun Nov 9 14:05:09 CST 2014
Oddly, when I use "sh" -> /bin/sh for the app, this example fails. The
swift run succeeds, but the returned file is zero-length (for the
example below) or contains a single newline (when I test a sh -c of a
simple echo).
It *seems* that using cat as the app works while /bin/sh fails to return
output correctly.
I'll need to debug further, but below are the working and then failing
swift scripts:
# This works, c.txt comes back as 1M+12 bytes:
$ cat wrapstage.swift
type file;
app (file c) cat(file a, file b) {
cat filename(a) filename(b) stdout=filename(c);
}
file c <"c.txt">;
file a <"a.txt">;
file b <"http://mirror.internode.on.net/pub/test/1meg.test">;
c = cat(a, b);
# this fails: c.txt comes back as zero length:
$ cat wrapstage2.swift
type file;
app (file c) cat(file a, file b) {
sh "-c" strcat("/bin/cat ", filename(a), " ", filename(b))
stdout=filename(c);
}
file c <"c.txt">;
file a <"a.txt">;
file b <"http://mirror.internode.on.net/pub/test/1meg.test">;
c = cat(a, b);
swift$
A bug, or user error?
- Mike
On 11/8/14 5:32 PM, Michael Wilde wrote:
> Ok, that works great now, both with the conf you posted and with this one:
>
> wrapperStagingLocalServer: "file://"
>
> site.local {
> staging: "wrapper"
> scratch: "/tmp/wilde/swiftest"
> }
>
> Thanks,
>
> - Mike
>
> On 11/8/14 4:41 PM, Mihael Hategan wrote:
>> (solved on IM but replying here for reference).
>>
>> I made a mistake in the swift.conf I sent. wrapperStagingLocalServer is
>> a global option not a site option. However, it should work with the
>> vanilla swift.conf posted, which had the wrong option commented out.
>>
>> Mihael
>>
>>
>> On Sat, 2014-11-08 at 16:37 -0600, Michael Wilde wrote:
>>> I get this error:
>>>
>>> org.griphyn.vdl.util.SwiftConfigException: swift.conf:4 unexpected
>>> property 'site.local.wrapperStagingLocalServer'
>>> at
>>> org.griphyn.vdl.util.SwiftConfigSchema.validate(SwiftConfigSchema.java:214)
>>>
>>> Ive tried spelling this property both as in your sample .conf and as in
>>> your text:
>>>
>>> wrapperStagingLocalServer and wrapperStageingLocalServer
>>>
>>> Neither is accepted. Did a schema change not get committed?
>>>
>>> For general info: where is the json schema file that a user can check to
>>> find all valid conf parameters?
>>>
>>> Thanks,
>>>
>>> - Mike
>>>
>>>
>>>
>>> On 11/8/14 4:13 PM, Mihael Hategan wrote:
>>>> type file;
>>>>
>>>> app (file c) cat(file a, file b) {
>>>> cat filename(a) filename(b) stdout=filename(c);
>>>> }
>>>>
>>>> file c <"c.txt">;
>>>> file a <"a.txt">;
>>>> file b <"http://mirror.internode.on.net/pub/test/1meg.test">;
>>>>
>>>> c = cat(a, b);
>>>> --------------------------------------------------------
>>>>
>>>> You would need a proper swift.conf. Here's an example of that:
>>>> --------------------------------------------------------
>>>> site.local {
>>>> staging: "wrapper"
>>>> scratch: "/some/scratch/dir"
>>>> # *see email comments for details on the following option
>>>> # wrapperStagingLocalServer:"file://"
>>>> }
>>>> --------------------------------------------------------
>>>>
>>>>
>>>> With a proper scratch dir there, this*should* work for you without any
>>>> additional tweaking.
>>>>
>>>> Check _swiftwrap.wrapperstaging's stagein() and stageout() functions.
>>>> That's where you would add additional protocols.
>>>>
>>>> The wrapperStagingLocalServer sets the default staging location for
>>>> things that do not have an explicit scheme. In the case above, "c.txt"
>>>> and "a.txt" are staged in and out using"file://". If you wanted the
>>>> default to be some gridftp server, you would say something like
>>>> 'wrapperStageingLocalServer: "gsiftp://gridftp.server.org/"'. Of course,
>>>> _swiftwrap.wrapperstaging would need to know how to handle gsiftp URLs,
>>>> which it doesn't at the moment.
>>>>
>>>> Mihael
--
Michael Wilde
Mathematics and Computer Science Computation Institute
Argonne National Laboratory The University of Chicago
More information about the Swift-devel
mailing list