From benc at hawaga.org.uk Mon May 4 01:49:53 2009 From: benc at hawaga.org.uk (Ben Clifford) Date: Mon, 4 May 2009 06:49:53 +0000 (GMT) Subject: [Swift-user] Execution error In-Reply-To: References: Message-ID: One comment in general for debugging when you have some large application workflow that appears to not run on a site, but runs on other sites, is to try running examples/swift/first.swift from the Swift distribution using the same sites file, and report whether that worked at the same time as reporting your other problem. If it fails, it is often easier to debug that for someone who does not understand the specifics of your application. -- From iraicu at cs.uchicago.edu Tue May 12 16:11:56 2009 From: iraicu at cs.uchicago.edu (Ioan Raicu) Date: Tue, 12 May 2009 16:11:56 -0500 Subject: [Swift-user] CFP: Special issue on Scientific Workflows in IJBPIM Message-ID: <4A09E61C.6060701@cs.uchicago.edu> Call for Papers Special Issue on Scientific Workflows International Journal of Business Process Integration and Management (IJBPIM) Description Scientific workflows have recently emerged as a new paradigm for scientists to formalize and structure complex scientific processes to enable and accelerate many significant scientific discoveries. A scientific workflow is a formal specification of a scientific process, which represents, streamlines, and automates the analytical and computational steps that a scientist needs to go through from dataset selection and integration, computation and analysis, to final data product presentation and visualization. A scientific workflow management system (SWFMS) is a system that supports the specification, modification, execution, failure recovery, and monitoring of a scientific workflow using the workflow logic to control the order of executing workflow tasks. The goal of this special issue is to present critical challenges, requirements, and issues related to scientific workflows. This collection of manuscripts will discuss key aspects in the development of a broad range of novel and innovative scientific workflow technologies. The emphasis of the special issue is on critical challenges in the development of various scientific workflows specifically as they relate to business workflow and service technologies. Particular emphasis will be placed on examples where innovative solutions to these challenges have resulted in scientific workflows which impact the scientific discovery process. Topics include but are not limited to: List of topic ? Scientific workflow provenance management ? Scientific workflow provenance analytics ? Scientific workflow data, metadata, service, and task management ? Scientific workflow architectures, models, and languages ? Scientific workflow monitoring and failure handling ? Streaming data processing in scientific workflows ? Pipelined, data, workflow, and task parallelism in scientific workflows ? Service, Grid, or Cloud-based scientific workflows ? Data, metadata, compute, user-interaction, or visualization-intensive scientific workflows ? Scientific workflow composition ? Security issues in scientific workflows ? Data integration and service integration in scientific workflows ? Scientific workflow mapping, optimization, and scheduling ? Scientific workflow modeling, verification, and validation ? Scalability, reliability, extensibility, agility, and interoperability ? Scientific workflow real-life applications Important dates ? July 1, 2009, paper submission ? October 1, 2009, notification ? January 1, 2010, camera-ready version ? Planned publication, middle of 2010 Guest editors ? Shiyong Lu , Wayne State University, U.S.A., Email: shiyong at wayne.edu ? Ewa Deelman , USC Information Sciences Institute, U.S.A., Email: deelman at isi.edu ? Zhiming Zhao , University of Amsterdam, the Netherlands, Email: z.zhao at uva.nl Submission details Submitted papers should not have been previously published nor be currently under consideration for publication elsewhere. All papers are refereed through a peer review process. Papers should be submitted to http://199.212.32.161/myreview/SubmitAbstract.php. Please also send an abstract and a copy of your paper to Shiyong at wayne.edu to ensure a reliable submission. Contact information All enquires about the special issue should be sent to Shiyong Lu at shiyong at wayne.edu. For more information, see http://www.cs.wayne.edu/~shiyong/swf/ijbpim09.html. -- =================================================== Ioan Raicu, Ph.D. =================================================== Distributed Systems Laboratory Computer Science Department University of Chicago 1100 E. 58th Street, Ryerson Hall Chicago, IL 60637 =================================================== Email: iraicu at cs.uchicago.edu Web: http://www.cs.uchicago.edu/~iraicu http://dev.globus.org/wiki/Incubator/Falkon http://dsl-wiki.cs.uchicago.edu/index.php/Main_Page =================================================== =================================================== -------------- next part -------------- An HTML attachment was scrubbed... URL: From hategan at mcs.anl.gov Fri May 29 04:02:54 2009 From: hategan at mcs.anl.gov (Mihael Hategan) Date: Fri, 29 May 2009 04:02:54 -0500 Subject: [Swift-user] Re: [Swift-devel] Issues when running swift on fuse In-Reply-To: <4A1F8B12.8050206@cs.uchicago.edu> References: <4A1F8B12.8050206@cs.uchicago.edu> Message-ID: <1243587774.15582.7.camel@localhost> That's strange. You are getting multiple errors, both for the log file and the restart log. But the restart log should be small (and for first.swift, so should be the execution log). So I suspect the error message is misleading. Can you provide more details? Such as: - the actual size of the files in question at the time the error(s) occurred - the motivation behind having the swift working directory (as opposed to just the data) on S3 - any relevant quotas or limitations of the S3 fs (output of 'quota' if applicable and 'df'). On Fri, 2009-05-29 at 02:13 -0500, yizhu wrote: > Hi, > > > I tried to run a swift on a directory mounted by fuse (s3fs), but got > the following error: > (-debug output attached) > > since I execute swift on /mnt/s3, the output file should be write > there,i had rw permission on /mnt/s3, the job seems run correctly (the > output file: Hello.txt is there), just a issue with log file. > > Is there a way to turn off the logging or any ideas to solve this problem? > > Thank you very much! > > > -From > > Yi Zhu > > > > [torqueuser at ip-10-251-89-208 ~]$ cd /mnt/s3 > [torqueuser at ip-10-251-89-208 s3]$ swift > /home/torqueuser/swift-0.9/examples/swift/first.swift > log4j:ERROR Failed to flush writer, > java.io.IOException: File too large > at java.io.FileOutputStream.writeBytes(Native Method) > at java.io.FileOutputStream.write(FileOutputStream.java:260) > at sun.nio.cs.StreamEncoder$CharsetSE.writeBytes(StreamEncoder.java:336) > at > sun.nio.cs.StreamEncoder$CharsetSE.implFlushBuffer(StreamEncoder.java:404) > at sun.nio.cs.StreamEncoder$CharsetSE.implFlush(StreamEncoder.java:408) > at sun.nio.cs.StreamE.ncoder.flush(StreamEncoder.java:152) > at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:213) > at org.apache.log4j.helpers.QuietWriter.flush(QuietWriter.java:49) > at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:306) > at org.apache.log4j.WriterAppender.append(WriterAppender.java:150) > at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:221) > at > org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:57) > at org.apache.log4j.Category.callAppenders(Category.java:187) > at org.apache.log4j.Category.forcedLog(Category.java:372) > at org.apache.log4j.Category.debug(Category.java:241) > at org.griphyn.vdl.karajan.Loader.main(Loader.java:75) > Swift 0.9 swift-r2860 cog-r2388 > > RunID: 20090529-0204-55gjsnhc > Progress: uninitialized:1 > Progress: Submitted:1 > Progress: Active:1 > Ex098 > org.globus.cog.karajan.workflow.KarajanRuntimeException: Exception > caught while writing to log file > at > org.globus.cog.karajan.workflow.nodes.restartLog.LogVargOperator.update(LogVargOperator.java:40) > at > org.globus.cog.karajan.workflow.nodes.functions.VariableArgumentsOperator.append(VariableArgumentsOperator.java:38) > at > org.globus.cog.karajan.workflow.nodes.functions.VariableArgumentsOperator.appendAll(VariableArgumentsOperator.java:44) > at > org.globus.cog.karajan.workflow.nodes.functions.VariableArgumentsOperator.merge(VariableArgumentsOperator.java:34) > at > org.globus.cog.karajan.workflow.nodes.SequentialChoice.commitBuffers(SequentialChoice.java:52) > at > org.globus.cog.karajan.workflow.nodes.SequentialChoice.childCompleted(SequentialChoice.java:41) > at > org.globus.cog.karajan.workflow.nodes.Sequential.notificationEvent(Sequential.java:33) > at > org.globus.cog.karajan.workflow.nodes.SequentialChoice.notificationEvent(SequentialChoice.java:66) > at org.globus.cog.karajan.workflow.nodes.FlowNode.event(FlowNode.java:332) > at org.globus.cog.karajan.workflow.events.EventBus.send(EventBus.java:125) > at > org.globus.cog.karajan.workflow.events.EventBus.sendHooked(EventBus.java:99) > at > org.globus.cog.karajan.workflow.nodes.FlowNode.fireNotificationEvent(FlowNode.java:176) > at > org.globus.cog.karajan.workflow.nodes.FlowNode.complete(FlowNode.java:296) > at > org.globus.cog.karajan.workflow.nodes.FlowContainer.post(FlowContainer.java:58) > at > org.globus.cog.karajan.workflow.nodes.Sequential.startNext(Sequential.java:51) > at > org.globus.cog.karajan.workflow.nodes.Sequential.childCompleted(Sequential.java:45) > at > org.globus.cog.karajan.workflow.nodes.Sequential.notificationEvent(Sequential.java:33) > at org.globus.cog.karajan.workflow.nodes.FlowNode.event(FlowNode.java:332) > at org.globus.cog.karajan.workflow.events.EventBus.send(EventBus.java:125) > at > org.globus.cog.karajan.workflow.events.EventBus.sendHooked(EventBus.java:99) > at > org.globus.cog.karajan.workflow.nodes.FlowNode.fireNotificationEvent(FlowNode.java:176) > at > org.globus.cog.karajan.workflow.nodes.FlowNode.complete(FlowNode.java:296) > at > org.globus.cog.karajan.workflow.nodes.FlowContainer.post(FlowContainer.java:58) > at > org.globus.cog.karajan.workflow.nodes.functions.AbstractFunction.post(AbstractFunction.java:46) > at > org.globus.cog.karajan.workflow.nodes.AbstractSequentialWithArguments.childCompleted(AbstractSequentialWithArguments.java:192) > at > org.globus.cog.karajan.workflow.nodes.Sequential.notificationEvent(Sequential.java:33) > at org.globus.cog.karajan.workflow.nodes.FlowNode.event(FlowNode.java:332) > at org.globus.cog.karajan.workflow.events.EventBus.send(EventBus.java:125) > at > org.globus.cog.karajan.workflow.events.EventBus.sendHooked(EventBus.java:99) > at > org.globus.cog.karajan.workflow.nodes.FlowNode.fireNotificationEvent(FlowNode.java:176) > at > org.globus.cog.karajan.workflow.nodes.FlowNode.complete(FlowNode.java:296) > at > org.globus.cog.karajan.workflow.nodes.functions.AbstractFunction.executeChildren(AbstractFunction.java:37) > at > org.globus.cog.karajan.workflow.nodes.FlowContainer.execute(FlowContainer.java:63) > at > org.globus.cog.karajan.workflow.nodes.FlowNode.restart(FlowNode.java:233) > at org.globus.cog.karajan.workflow.nodes.FlowNode.start(FlowNode.java:278) > at > org.globus.cog.karajan.workflow.nodes.FlowNode.controlEvent(FlowNode.java:391) > at org.globus.cog.karajan.workflow.nodes.FlowNode.event(FlowNode.java:329) > at > org.globus.cog.karajan.workflow.FlowElementWrapper.event(FlowElementWrapper.java:227) > at org.globus.cog.karajan.workflow.events.EventBus.send(EventBus.java:125) > at > org.globus.cog.karajan.workflow.events.EventBus.sendHooked(EventBus.java:99) > at > org.globus.cog.karajan.workflow.events.EventWorker.run(EventWorker.java:69) > Caused by: java.io.IOException: File too large > at java.io.FileOutputStream.writeBytes(Native Method) > at java.io.FileOutputStream.write(FileOutputStream.java:260) > at sun.nio.cs.StreamEncoder$CharsetSE.writeBytes(StreamEncoder.java:336) > at > sun.nio.cs.StreamEncoder$CharsetSE.implFlushBuffer(StreamEncoder.java:404) > at sun.nio.cs.StreamEncoder$CharsetSE.implFlush(StreamEncoder.java:408) > at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:152) > at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:213) > at > org.globus.cog.karajan.workflow.nodes.restartLog.FlushableLockedFileWriter.flush(FlushableLockedFileWriter.java:39) > at > org.globus.cog.karajan.workflow.nodes.restartLog.LogVargOperator.update(LogVargOperator.java:37) > ... 40 more > Execution failed: > Exception caught while writing to log file > Caused by: > File too large > [torqueuser at ip-10-251-89-208 s3]$ > > > > _______________________________________________ > Swift-devel mailing list > Swift-devel at ci.uchicago.edu > http://mail.ci.uchicago.edu/mailman/listinfo/swift-devel From yizhu at cs.uchicago.edu Fri May 29 13:09:13 2009 From: yizhu at cs.uchicago.edu (yizhu) Date: Fri, 29 May 2009 13:09:13 -0500 Subject: [Swift-user] Re: [Swift-devel] Issues when running swift on fuse In-Reply-To: <1243587774.15582.7.camel@localhost> References: <4A1F8B12.8050206@cs.uchicago.edu> <1243587774.15582.7.camel@localhost> Message-ID: <4A2024C9.6010705@cs.uchicago.edu> Mihael Hategan wrote: > That's strange. You are getting multiple errors, both for the log file > and the restart log. But the restart log should be small (and for > first.swift, so should be the execution log). So I suspect the error > message is misleading. Yes, i think you are right, I noticed that swift is trying to generate log file with size more that 18446744073GB, which cause the file two large problem. > > Can you provide more details? Such as: > - the actual size of the files in question at the time the error(s) > occurred for a normal execution of first.swift code, it will will generate the files as follow; [torqueuser at ip-10-251-89-208 test]$ pwd /mnt/ebs/test [torqueuser at ip-10-251-89-208 test]$ ls -l -rw-rw-r-- 1 torqueuser torqueuser 25141 May 29 12:33 first-20090529-1233-nj1nazbf.log -rw-rw-r-- 1 torqueuser torqueuser 25406 May 29 12:34 first-20090529-1234-bgzd13z4.log -rw-rw-r-- 1 torqueuser torqueuser 14 May 29 12:34 hello.txt -rw-rw-r-- 1 torqueuser torqueuser 114 May 29 12:34 swift.log but when I try to run it on s3 (mounted via s3-fuse), the error occurs is following files is generated: [torqueuser at ip-10-251-89-208 abc]$ pwd /mnt/s3/abc [torqueuser at ip-10-251-89-208 abc]$ ls -l total 2 -rw-rw-r-- 1 torqueuser torqueuser 18446744073709551615 May 29 12:35 first-20090529-1235-xjyfu9r4.0.rlog -rw-rw-r-- 1 torqueuser torqueuser 18446744073709551615 May 29 12:35 first-20090529-1235-xjyfu9r4.log -rw-rw-r-- 1 torqueuser torqueuser 14 May 29 12:35 hello.txt -rw-rw-r-- 1 torqueuser torqueuser 18446744073709551615 May 29 12:35 swift.log [torqueuser at ip-10-251-89-208 abc]$ > - the motivation behind having the swift working directory (as opposed > to just the data) on S3 > - any relevant quotas or limitations of the S3 fs (output of 'quota' if > applicable and 'df'). no output of 'quota', 'df'is (/mnt/s3 is the s3 directory : [torqueuser at ip-10-251-89-208 s3]$ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 4128448 2744188 1174548 71% / none 873880 0 873880 0% /dev/shm /dev/sda2 153899044 1999124 144082296 2% /mnt /dev/sdf 10321208 290468 9506452 3% /mnt/ebs fuse 274877906944 0 274877906944 0% /mnt/s3 normally, we have create a single file sized around 1G with no problem, it seems there is something wrong when swift try to generate log on s3fuse. (I am using swift-0.9) Then I tried to run swift on locally but with output file write to s3 directory, then it works correctly.(log file is stored on local directory where i run swift, and output file is on s3 directory) > On Fri, 2009-05-29 at 02:13 -0500, yizhu wrote: >> Hi, >> >> >> I tried to run a swift on a directory mounted by fuse (s3fs), but got >> the following error: >> (-debug output attached) >> >> since I execute swift on /mnt/s3, the output file should be write >> there,i had rw permission on /mnt/s3, the job seems run correctly (the >> output file: Hello.txt is there), just a issue with log file. >> >> Is there a way to turn off the logging or any ideas to solve this problem? >> >> Thank you very much! >> >> >> -From >> >> Yi Zhu >> >> >> >> [torqueuser at ip-10-251-89-208 ~]$ cd /mnt/s3 >> [torqueuser at ip-10-251-89-208 s3]$ swift >> /home/torqueuser/swift-0.9/examples/swift/first.swift >> log4j:ERROR Failed to flush writer, >> java.io.IOException: File too large >> at java.io.FileOutputStream.writeBytes(Native Method) >> at java.io.FileOutputStream.write(FileOutputStream.java:260) >> at sun.nio.cs.StreamEncoder$CharsetSE.writeBytes(StreamEncoder.java:336) >> at >> sun.nio.cs.StreamEncoder$CharsetSE.implFlushBuffer(StreamEncoder.java:404) >> at sun.nio.cs.StreamEncoder$CharsetSE.implFlush(StreamEncoder.java:408) >> at sun.nio.cs.StreamE.ncoder.flush(StreamEncoder.java:152) >> at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:213) >> at org.apache.log4j.helpers.QuietWriter.flush(QuietWriter.java:49) >> at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:306) >> at org.apache.log4j.WriterAppender.append(WriterAppender.java:150) >> at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:221) >> at >> org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:57) >> at org.apache.log4j.Category.callAppenders(Category.java:187) >> at org.apache.log4j.Category.forcedLog(Category.java:372) >> at org.apache.log4j.Category.debug(Category.java:241) >> at org.griphyn.vdl.karajan.Loader.main(Loader.java:75) >> Swift 0.9 swift-r2860 cog-r2388 >> >> RunID: 20090529-0204-55gjsnhc >> Progress: uninitialized:1 >> Progress: Submitted:1 >> Progress: Active:1 >> Ex098 >> org.globus.cog.karajan.workflow.KarajanRuntimeException: Exception >> caught while writing to log file >> at >> org.globus.cog.karajan.workflow.nodes.restartLog.LogVargOperator.update(LogVargOperator.java:40) >> at >> org.globus.cog.karajan.workflow.nodes.functions.VariableArgumentsOperator.append(VariableArgumentsOperator.java:38) >> at >> org.globus.cog.karajan.workflow.nodes.functions.VariableArgumentsOperator.appendAll(VariableArgumentsOperator.java:44) >> at >> org.globus.cog.karajan.workflow.nodes.functions.VariableArgumentsOperator.merge(VariableArgumentsOperator.java:34) >> at >> org.globus.cog.karajan.workflow.nodes.SequentialChoice.commitBuffers(SequentialChoice.java:52) >> at >> org.globus.cog.karajan.workflow.nodes.SequentialChoice.childCompleted(SequentialChoice.java:41) >> at >> org.globus.cog.karajan.workflow.nodes.Sequential.notificationEvent(Sequential.java:33) >> at >> org.globus.cog.karajan.workflow.nodes.SequentialChoice.notificationEvent(SequentialChoice.java:66) >> at org.globus.cog.karajan.workflow.nodes.FlowNode.event(FlowNode.java:332) >> at org.globus.cog.karajan.workflow.events.EventBus.send(EventBus.java:125) >> at >> org.globus.cog.karajan.workflow.events.EventBus.sendHooked(EventBus.java:99) >> at >> org.globus.cog.karajan.workflow.nodes.FlowNode.fireNotificationEvent(FlowNode.java:176) >> at >> org.globus.cog.karajan.workflow.nodes.FlowNode.complete(FlowNode.java:296) >> at >> org.globus.cog.karajan.workflow.nodes.FlowContainer.post(FlowContainer.java:58) >> at >> org.globus.cog.karajan.workflow.nodes.Sequential.startNext(Sequential.java:51) >> at >> org.globus.cog.karajan.workflow.nodes.Sequential.childCompleted(Sequential.java:45) >> at >> org.globus.cog.karajan.workflow.nodes.Sequential.notificationEvent(Sequential.java:33) >> at org.globus.cog.karajan.workflow.nodes.FlowNode.event(FlowNode.java:332) >> at org.globus.cog.karajan.workflow.events.EventBus.send(EventBus.java:125) >> at >> org.globus.cog.karajan.workflow.events.EventBus.sendHooked(EventBus.java:99) >> at >> org.globus.cog.karajan.workflow.nodes.FlowNode.fireNotificationEvent(FlowNode.java:176) >> at >> org.globus.cog.karajan.workflow.nodes.FlowNode.complete(FlowNode.java:296) >> at >> org.globus.cog.karajan.workflow.nodes.FlowContainer.post(FlowContainer.java:58) >> at >> org.globus.cog.karajan.workflow.nodes.functions.AbstractFunction.post(AbstractFunction.java:46) >> at >> org.globus.cog.karajan.workflow.nodes.AbstractSequentialWithArguments.childCompleted(AbstractSequentialWithArguments.java:192) >> at >> org.globus.cog.karajan.workflow.nodes.Sequential.notificationEvent(Sequential.java:33) >> at org.globus.cog.karajan.workflow.nodes.FlowNode.event(FlowNode.java:332) >> at org.globus.cog.karajan.workflow.events.EventBus.send(EventBus.java:125) >> at >> org.globus.cog.karajan.workflow.events.EventBus.sendHooked(EventBus.java:99) >> at >> org.globus.cog.karajan.workflow.nodes.FlowNode.fireNotificationEvent(FlowNode.java:176) >> at >> org.globus.cog.karajan.workflow.nodes.FlowNode.complete(FlowNode.java:296) >> at >> org.globus.cog.karajan.workflow.nodes.functions.AbstractFunction.executeChildren(AbstractFunction.java:37) >> at >> org.globus.cog.karajan.workflow.nodes.FlowContainer.execute(FlowContainer.java:63) >> at >> org.globus.cog.karajan.workflow.nodes.FlowNode.restart(FlowNode.java:233) >> at org.globus.cog.karajan.workflow.nodes.FlowNode.start(FlowNode.java:278) >> at >> org.globus.cog.karajan.workflow.nodes.FlowNode.controlEvent(FlowNode.java:391) >> at org.globus.cog.karajan.workflow.nodes.FlowNode.event(FlowNode.java:329) >> at >> org.globus.cog.karajan.workflow.FlowElementWrapper.event(FlowElementWrapper.java:227) >> at org.globus.cog.karajan.workflow.events.EventBus.send(EventBus.java:125) >> at >> org.globus.cog.karajan.workflow.events.EventBus.sendHooked(EventBus.java:99) >> at >> org.globus.cog.karajan.workflow.events.EventWorker.run(EventWorker.java:69) >> Caused by: java.io.IOException: File too large >> at java.io.FileOutputStream.writeBytes(Native Method) >> at java.io.FileOutputStream.write(FileOutputStream.java:260) >> at sun.nio.cs.StreamEncoder$CharsetSE.writeBytes(StreamEncoder.java:336) >> at >> sun.nio.cs.StreamEncoder$CharsetSE.implFlushBuffer(StreamEncoder.java:404) >> at sun.nio.cs.StreamEncoder$CharsetSE.implFlush(StreamEncoder.java:408) >> at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:152) >> at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:213) >> at >> org.globus.cog.karajan.workflow.nodes.restartLog.FlushableLockedFileWriter.flush(FlushableLockedFileWriter.java:39) >> at >> org.globus.cog.karajan.workflow.nodes.restartLog.LogVargOperator.update(LogVargOperator.java:37) >> ... 40 more >> Execution failed: >> Exception caught while writing to log file >> Caused by: >> File too large >> [torqueuser at ip-10-251-89-208 s3]$ >> >> >> >> _______________________________________________ >> Swift-devel mailing list >> Swift-devel at ci.uchicago.edu >> http://mail.ci.uchicago.edu/mailman/listinfo/swift-devel > > From amoore2 at uchicago.edu Fri May 29 13:09:30 2009 From: amoore2 at uchicago.edu (Alex Moore) Date: Fri, 29 May 2009 13:09:30 -0500 Subject: [Swift-user] first.swift issues Message-ID: <8a98db410905291109h72cab1f4hb39501495c5ab43d@mail.gmail.com> Following the quick start guide to install swift on my CI account. When I try execute: swift first.swift I get the following message: "-Xmx256m not understood. Ignoring log4j:ERROR Error occurred while converting date. java.lan.IllegalArgumentExcepion: Illegal pattern character at java.text.SimpleDateFormat.format(java.util.Date, ..." It continues on for at least another page. This happens when I log in on both login.ci.uchicago.edu and communicado.ci.uchicago.edu. I tried deleting and reinstalling as well. I'm using swift-0.9 Also, the first.swift file in package is different from the one in the swift tutorial. In swift-0.9, first.swift starts off with: type messagefile; app (messagefile t) greeting () { echo "Hello, world!"...... While the swift tutorial has: type messagefile; (messagefile t) greeting () { app { echo "Hello, world!"...... I changed first.swift to what was listed in the swift tutorial, and I got the same error message. Thank for your help. -Alex Moore From zhaozhang at uchicago.edu Fri May 29 13:20:15 2009 From: zhaozhang at uchicago.edu (Zhao Zhang) Date: Fri, 29 May 2009 13:20:15 -0500 Subject: [Swift-user] first.swift issues In-Reply-To: <8a98db410905291109h72cab1f4hb39501495c5ab43d@mail.gmail.com> References: <8a98db410905291109h72cab1f4hb39501495c5ab43d@mail.gmail.com> Message-ID: <4A20275F.5090708@uchicago.edu> Hi, Alex I tried the swift in your home dir, assuming that is the one you are using. It works for me. [zzhang at communicado amoore2]$ export PATH=/home/amoore2/swift-0.9/bin:$PATH [zzhang at communicado amoore2]$ which swift /home/amoore2/swift-0.9/bin/swift [zzhang at communicado amoore2]$ cd /home/zzhang/swift_coaster/cog/modules/swift/examples/ [zzhang at communicado examples]$ swift first.swift Swift 0.9 swift-r2860 cog-r2388 RunID: 20090529-1318-ada6yjqb Progress: Final status: Finished successfully:1 zhao Alex Moore wrote: > Following the quick start guide to install swift on my CI account. > When I try execute: swift first.swift I get the following message: > "-Xmx256m not understood. Ignoring > log4j:ERROR Error occurred while converting date. > java.lan.IllegalArgumentExcepion: Illegal pattern character at > java.text.SimpleDateFormat.format(java.util.Date, ..." > > It continues on for at least another page. This happens when I log in > on both login.ci.uchicago.edu and communicado.ci.uchicago.edu. I tried > deleting and reinstalling as well. I'm using swift-0.9 > > Also, the first.swift file in package is different from the one in the > swift tutorial. In swift-0.9, first.swift starts off with: > > type messagefile; > > app (messagefile t) greeting () { > echo "Hello, world!"...... > > While the swift tutorial has: > > type messagefile; > > (messagefile t) greeting () { > app { echo "Hello, world!"...... > > > I changed first.swift to what was listed in the swift tutorial, and I > got the same error message. Thank for your help. > -Alex Moore > _______________________________________________ > Swift-user mailing list > Swift-user at ci.uchicago.edu > http://mail.ci.uchicago.edu/mailman/listinfo/swift-user > > From yizhu at cs.uchicago.edu Fri May 29 13:23:33 2009 From: yizhu at cs.uchicago.edu (yizhu) Date: Fri, 29 May 2009 13:23:33 -0500 Subject: [Swift-user] swift syntax problem (please ignore the previous one ) Message-ID: <4A202825.3000809@cs.uchicago.edu> Hi, In order to let swift write output to another directory rather than currently running location, we can use simple_mapper with location parameter like ", but if I want to use regexp_mapper, since there is no 'location' parameter available for regexp_mapper, (http://www.ci.uchicago.edu/swift/guides/userguide.php#mapper.simple_mapper) how can i sort it out? For example, In this case, every files with prefix "data" and suffix ".txt" at location "/mnt/testdata/1024Kdir" will be map to inputfiles[] array, and for each running of loop, the regexp_mapper will modify the ".txt" to 'swift xxx.swift' command), so how can i specify a output location other than the default/current one? Many Thanks. -YI From wilde at mcs.anl.gov Fri May 29 13:31:39 2009 From: wilde at mcs.anl.gov (Michael Wilde) Date: Fri, 29 May 2009 13:31:39 -0500 Subject: [Swift-user] first.swift issues In-Reply-To: <4A20275F.5090708@uchicago.edu> References: <8a98db410905291109h72cab1f4hb39501495c5ab43d@mail.gmail.com> <4A20275F.5090708@uchicago.edu> Message-ID: <4A202A0B.1020407@mcs.anl.gov> Alex, it sounds like you may be gettuing a different (old?) version of Java. Can you try this on communicado.ci.uchicago.edu, and add this line to the front of your .soft file: +java-sun - Mike On 5/29/09 1:20 PM, Zhao Zhang wrote: > Hi, Alex > > I tried the swift in your home dir, assuming that is the one you are > using. It works for me. > [zzhang at communicado amoore2]$ export PATH=/home/amoore2/swift-0.9/bin:$PATH > [zzhang at communicado amoore2]$ which swift > /home/amoore2/swift-0.9/bin/swift > [zzhang at communicado amoore2]$ cd > /home/zzhang/swift_coaster/cog/modules/swift/examples/ > [zzhang at communicado examples]$ swift first.swift > Swift 0.9 swift-r2860 cog-r2388 > > RunID: 20090529-1318-ada6yjqb > Progress: > Final status: Finished successfully:1 > > zhao > > Alex Moore wrote: >> Following the quick start guide to install swift on my CI account. >> When I try execute: swift first.swift I get the following message: >> "-Xmx256m not understood. Ignoring >> log4j:ERROR Error occurred while converting date. >> java.lan.IllegalArgumentExcepion: Illegal pattern character at >> java.text.SimpleDateFormat.format(java.util.Date, ..." >> >> It continues on for at least another page. This happens when I log in >> on both login.ci.uchicago.edu and communicado.ci.uchicago.edu. I tried >> deleting and reinstalling as well. I'm using swift-0.9 >> >> Also, the first.swift file in package is different from the one in the >> swift tutorial. In swift-0.9, first.swift starts off with: >> >> type messagefile; >> >> app (messagefile t) greeting () { >> echo "Hello, world!"...... >> >> While the swift tutorial has: >> >> type messagefile; >> >> (messagefile t) greeting () { >> app { echo "Hello, world!"...... >> >> >> I changed first.swift to what was listed in the swift tutorial, and I >> got the same error message. Thank for your help. >> -Alex Moore >> _______________________________________________ >> Swift-user mailing list >> Swift-user at ci.uchicago.edu >> http://mail.ci.uchicago.edu/mailman/listinfo/swift-user >> >> > _______________________________________________ > Swift-user mailing list > Swift-user at ci.uchicago.edu > http://mail.ci.uchicago.edu/mailman/listinfo/swift-user From hategan at mcs.anl.gov Fri May 29 16:30:00 2009 From: hategan at mcs.anl.gov (Mihael Hategan) Date: Fri, 29 May 2009 16:30:00 -0500 Subject: [Swift-user] Re: [Swift-devel] Issues when running swift on fuse In-Reply-To: <4A2024C9.6010705@cs.uchicago.edu> References: <4A1F8B12.8050206@cs.uchicago.edu> <1243587774.15582.7.camel@localhost> <4A2024C9.6010705@cs.uchicago.edu> Message-ID: <1243632600.30923.3.camel@localhost> On Fri, 2009-05-29 at 13:09 -0500, yizhu wrote: > Mihael Hategan wrote: > > That's strange. You are getting multiple errors, both for the log file > > and the restart log. But the restart log should be small (and for > > first.swift, so should be the execution log). So I suspect the error > > message is misleading. > Yes, i think you are right, I noticed that swift is trying to generate > log file with size more that 18446744073GB, which cause the file two > large problem. Swift doesn't generate empty logs of a pre-set size. And the size you mention is insanely large. So I think this is a bug in the s3 driver. I'm not sure why swift triggers it. From hategan at mcs.anl.gov Fri May 29 16:31:36 2009 From: hategan at mcs.anl.gov (Mihael Hategan) Date: Fri, 29 May 2009 16:31:36 -0500 Subject: [Swift-user] first.swift issues In-Reply-To: <8a98db410905291109h72cab1f4hb39501495c5ab43d@mail.gmail.com> References: <8a98db410905291109h72cab1f4hb39501495c5ab43d@mail.gmail.com> Message-ID: <1243632696.30923.5.camel@localhost> On Fri, 2009-05-29 at 13:09 -0500, Alex Moore wrote: > Also, the first.swift file in package is different from the one in the > swift tutorial. In swift-0.9, first.swift starts off with: Doesn't matter. The first one is the old syntax which will (probably) eventually be deprecated. They are otherwise equivalent. > > type messagefile; > > app (messagefile t) greeting () { > echo "Hello, world!"...... > > While the swift tutorial has: > > type messagefile; > > (messagefile t) greeting () { > app { echo "Hello, world!"...... > > > I changed first.swift to what was listed in the swift tutorial, and I > got the same error message. Thank for your help. > -Alex Moore > _______________________________________________ > Swift-user mailing list > Swift-user at ci.uchicago.edu > http://mail.ci.uchicago.edu/mailman/listinfo/swift-user From hategan at mcs.anl.gov Fri May 29 16:33:06 2009 From: hategan at mcs.anl.gov (Mihael Hategan) Date: Fri, 29 May 2009 16:33:06 -0500 Subject: [Swift-user] first.swift issues In-Reply-To: <8a98db410905291109h72cab1f4hb39501495c5ab43d@mail.gmail.com> References: <8a98db410905291109h72cab1f4hb39501495c5ab43d@mail.gmail.com> Message-ID: <1243632786.30923.7.camel@localhost> On Fri, 2009-05-29 at 13:09 -0500, Alex Moore wrote: > Following the quick start guide to install swift on my CI account. > When I try execute: swift first.swift I get the following message: > "-Xmx256m not understood. That's standard in Sun JVMs. Can you paste the output of "java -version"? From wilde at mcs.anl.gov Fri May 29 17:07:58 2009 From: wilde at mcs.anl.gov (Michael Wilde) Date: Fri, 29 May 2009 17:07:58 -0500 Subject: [Fwd: Re: [Swift-user] first.swift issues] Message-ID: <4A205CBE.5020806@mcs.anl.gov> -------- Original Message -------- Subject: Re: [Swift-user] first.swift issues Date: Fri, 29 May 2009 13:50:00 -0500 From: Alex Moore To: Michael Wilde CC: Zhao Zhang References: <8a98db410905291109h72cab1f4hb39501495c5ab43d at mail.gmail.com> <4A20275F.5090708 at uchicago.edu> <4A202A0B.1020407 at mcs.anl.gov> Yeah, that's it. When I add +java-sun to my .soft file it works fine. Thanks. -Alex On Fri, May 29, 2009 at 1:31 PM, Michael Wilde wrote: > Alex, it sounds like you may be gettuing a different (old?) version of Java. > > Can you try this on communicado.ci.uchicago.edu, and add this line to the > front of your .soft file: > > +java-sun > > - Mike > > On 5/29/09 1:20 PM, Zhao Zhang wrote: >> >> Hi, Alex >> >> I tried the swift in your home dir, assuming that is the one you are >> using. It works for me. >> [zzhang at communicado amoore2]$ export >> PATH=/home/amoore2/swift-0.9/bin:$PATH >> [zzhang at communicado amoore2]$ which swift >> /home/amoore2/swift-0.9/bin/swift >> [zzhang at communicado amoore2]$ cd >> /home/zzhang/swift_coaster/cog/modules/swift/examples/ >> [zzhang at communicado examples]$ swift first.swift >> Swift 0.9 swift-r2860 cog-r2388 >> >> RunID: 20090529-1318-ada6yjqb >> Progress: >> Final status: Finished successfully:1 >> >> zhao >> >> Alex Moore wrote: >>> >>> Following the quick start guide to install swift on my CI account. >>> When I try execute: swift first.swift I get the following message: >>> "-Xmx256m not understood. Ignoring >>> log4j:ERROR Error occurred while converting date. >>> java.lan.IllegalArgumentExcepion: Illegal pattern character at >>> java.text.SimpleDateFormat.format(java.util.Date, ..." >>> >>> It continues on for at least another page. This happens when I log in >>> on both login.ci.uchicago.edu and communicado.ci.uchicago.edu. I tried >>> deleting and reinstalling as well. I'm using swift-0.9 >>> >>> Also, the first.swift file in package is different from the one in the >>> swift tutorial. In swift-0.9, first.swift starts off with: >>> >>> type messagefile; >>> >>> app (messagefile t) greeting () { >>> echo "Hello, world!"...... >>> >>> While the swift tutorial has: >>> >>> type messagefile; >>> >>> (messagefile t) greeting () { >>> app { echo "Hello, world!"...... >>> >>> >>> I changed first.swift to what was listed in the swift tutorial, and I >>> got the same error message. Thank for your help. >>> -Alex Moore >>> _______________________________________________ >>> Swift-user mailing list >>> Swift-user at ci.uchicago.edu >>> http://mail.ci.uchicago.edu/mailman/listinfo/swift-user >>> >>> >> >> _______________________________________________ >> Swift-user mailing list >> Swift-user at ci.uchicago.edu >> http://mail.ci.uchicago.edu/mailman/listinfo/swift-user > From benc at hawaga.org.uk Fri May 29 18:15:08 2009 From: benc at hawaga.org.uk (Ben Clifford) Date: Fri, 29 May 2009 23:15:08 +0000 (GMT) Subject: [Swift-user] first.swift issues In-Reply-To: <4A202A0B.1020407@mcs.anl.gov> References: <8a98db410905291109h72cab1f4hb39501495c5ab43d@mail.gmail.com> <4A20275F.5090708@uchicago.edu> <4A202A0B.1020407@mcs.anl.gov> Message-ID: On Fri, 29 May 2009, Michael Wilde wrote: > Alex, it sounds like you may be gettuing a different (old?) version of Java. > > Can you try this on communicado.ci.uchicago.edu, and add this line to the > front of your .soft file: > > +java-sun This is a standard "by design" problem with CI machines now - new user accounts don't get a Java by default that is compatible with Swift. A few people have encountered it. -- From yizhu at cs.uchicago.edu Fri May 29 02:13:22 2009 From: yizhu at cs.uchicago.edu (yizhu) Date: Fri, 29 May 2009 02:13:22 -0500 Subject: [Swift-user] Issues when running swift on fuse Message-ID: <4A1F8B12.8050206@cs.uchicago.edu> Hi, I tried to run a swift on a directory mounted by fuse (s3fs), but got the following error: (-debug output attached) since I execute swift on /mnt/s3, the output file should be write there,i had rw permission on /mnt/s3, the job seems run correctly (the output file: Hello.txt is there), just a issue with log file. Is there a way to turn off the logging or any ideas to solve this problem? Thank you very much! -From Yi Zhu [torqueuser at ip-10-251-89-208 ~]$ cd /mnt/s3 [torqueuser at ip-10-251-89-208 s3]$ swift /home/torqueuser/swift-0.9/examples/swift/first.swift log4j:ERROR Failed to flush writer, java.io.IOException: File too large at java.io.FileOutputStream.writeBytes(Native Method) at java.io.FileOutputStream.write(FileOutputStream.java:260) at sun.nio.cs.StreamEncoder$CharsetSE.writeBytes(StreamEncoder.java:336) at sun.nio.cs.StreamEncoder$CharsetSE.implFlushBuffer(StreamEncoder.java:404) at sun.nio.cs.StreamEncoder$CharsetSE.implFlush(StreamEncoder.java:408) at sun.nio.cs.StreamE.ncoder.flush(StreamEncoder.java:152) at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:213) at org.apache.log4j.helpers.QuietWriter.flush(QuietWriter.java:49) at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:306) at org.apache.log4j.WriterAppender.append(WriterAppender.java:150) at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:221) at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:57) at org.apache.log4j.Category.callAppenders(Category.java:187) at org.apache.log4j.Category.forcedLog(Category.java:372) at org.apache.log4j.Category.debug(Category.java:241) at org.griphyn.vdl.karajan.Loader.main(Loader.java:75) Swift 0.9 swift-r2860 cog-r2388 RunID: 20090529-0204-55gjsnhc Progress: uninitialized:1 Progress: Submitted:1 Progress: Active:1 Ex098 org.globus.cog.karajan.workflow.KarajanRuntimeException: Exception caught while writing to log file at org.globus.cog.karajan.workflow.nodes.restartLog.LogVargOperator.update(LogVargOperator.java:40) at org.globus.cog.karajan.workflow.nodes.functions.VariableArgumentsOperator.append(VariableArgumentsOperator.java:38) at org.globus.cog.karajan.workflow.nodes.functions.VariableArgumentsOperator.appendAll(VariableArgumentsOperator.java:44) at org.globus.cog.karajan.workflow.nodes.functions.VariableArgumentsOperator.merge(VariableArgumentsOperator.java:34) at org.globus.cog.karajan.workflow.nodes.SequentialChoice.commitBuffers(SequentialChoice.java:52) at org.globus.cog.karajan.workflow.nodes.SequentialChoice.childCompleted(SequentialChoice.java:41) at org.globus.cog.karajan.workflow.nodes.Sequential.notificationEvent(Sequential.java:33) at org.globus.cog.karajan.workflow.nodes.SequentialChoice.notificationEvent(SequentialChoice.java:66) at org.globus.cog.karajan.workflow.nodes.FlowNode.event(FlowNode.java:332) at org.globus.cog.karajan.workflow.events.EventBus.send(EventBus.java:125) at org.globus.cog.karajan.workflow.events.EventBus.sendHooked(EventBus.java:99) at org.globus.cog.karajan.workflow.nodes.FlowNode.fireNotificationEvent(FlowNode.java:176) at org.globus.cog.karajan.workflow.nodes.FlowNode.complete(FlowNode.java:296) at org.globus.cog.karajan.workflow.nodes.FlowContainer.post(FlowContainer.java:58) at org.globus.cog.karajan.workflow.nodes.Sequential.startNext(Sequential.java:51) at org.globus.cog.karajan.workflow.nodes.Sequential.childCompleted(Sequential.java:45) at org.globus.cog.karajan.workflow.nodes.Sequential.notificationEvent(Sequential.java:33) at org.globus.cog.karajan.workflow.nodes.FlowNode.event(FlowNode.java:332) at org.globus.cog.karajan.workflow.events.EventBus.send(EventBus.java:125) at org.globus.cog.karajan.workflow.events.EventBus.sendHooked(EventBus.java:99) at org.globus.cog.karajan.workflow.nodes.FlowNode.fireNotificationEvent(FlowNode.java:176) at org.globus.cog.karajan.workflow.nodes.FlowNode.complete(FlowNode.java:296) at org.globus.cog.karajan.workflow.nodes.FlowContainer.post(FlowContainer.java:58) at org.globus.cog.karajan.workflow.nodes.functions.AbstractFunction.post(AbstractFunction.java:46) at org.globus.cog.karajan.workflow.nodes.AbstractSequentialWithArguments.childCompleted(AbstractSequentialWithArguments.java:192) at org.globus.cog.karajan.workflow.nodes.Sequential.notificationEvent(Sequential.java:33) at org.globus.cog.karajan.workflow.nodes.FlowNode.event(FlowNode.java:332) at org.globus.cog.karajan.workflow.events.EventBus.send(EventBus.java:125) at org.globus.cog.karajan.workflow.events.EventBus.sendHooked(EventBus.java:99) at org.globus.cog.karajan.workflow.nodes.FlowNode.fireNotificationEvent(FlowNode.java:176) at org.globus.cog.karajan.workflow.nodes.FlowNode.complete(FlowNode.java:296) at org.globus.cog.karajan.workflow.nodes.functions.AbstractFunction.executeChildren(AbstractFunction.java:37) at org.globus.cog.karajan.workflow.nodes.FlowContainer.execute(FlowContainer.java:63) at org.globus.cog.karajan.workflow.nodes.FlowNode.restart(FlowNode.java:233) at org.globus.cog.karajan.workflow.nodes.FlowNode.start(FlowNode.java:278) at org.globus.cog.karajan.workflow.nodes.FlowNode.controlEvent(FlowNode.java:391) at org.globus.cog.karajan.workflow.nodes.FlowNode.event(FlowNode.java:329) at org.globus.cog.karajan.workflow.FlowElementWrapper.event(FlowElementWrapper.java:227) at org.globus.cog.karajan.workflow.events.EventBus.send(EventBus.java:125) at org.globus.cog.karajan.workflow.events.EventBus.sendHooked(EventBus.java:99) at org.globus.cog.karajan.workflow.events.EventWorker.run(EventWorker.java:69) Caused by: java.io.IOException: File too large at java.io.FileOutputStream.writeBytes(Native Method) at java.io.FileOutputStream.write(FileOutputStream.java:260) at sun.nio.cs.StreamEncoder$CharsetSE.writeBytes(StreamEncoder.java:336) at sun.nio.cs.StreamEncoder$CharsetSE.implFlushBuffer(StreamEncoder.java:404) at sun.nio.cs.StreamEncoder$CharsetSE.implFlush(StreamEncoder.java:408) at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:152) at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:213) at org.globus.cog.karajan.workflow.nodes.restartLog.FlushableLockedFileWriter.flush(FlushableLockedFileWriter.java:39) at org.globus.cog.karajan.workflow.nodes.restartLog.LogVargOperator.update(LogVargOperator.java:37) ... 40 more Execution failed: Exception caught while writing to log file Caused by: File too large [torqueuser at ip-10-251-89-208 s3]$ -------------- next part -------------- A non-text attachment was scrubbed... Name: error.log Type: text/x-log Size: 35601 bytes Desc: not available URL: From yizhu at uchicago.edu Fri May 29 13:19:27 2009 From: yizhu at uchicago.edu (Yi Zhu) Date: Fri, 29 May 2009 13:19:27 -0500 Subject: [Swift-user] swift syntax question Message-ID: <4A20272F.9020203@uchicago.edu> Hi, In order to let swift write output to another directory rather than currently running location, we can use simple_mapper with location parameter like ", but if I want to use regexp_mapper, since there is no 'location' parameter available for regexp_mapper, (http://www.ci.uchicago.edu/swift/guides/userguide.php#mapper.simple_mapper) how can i sort it out? For example, In this case, every files with prefix "data" and suffix ".txt" at location "/mnt/testdata/1024Kdir" will be map to inputfiles[] array, and for each running of loop, the regexp_mapper will modify the ".txt" to 'swift xxx.swift' command), so how can i specify a output location other than the default/current one? (catfile t) catwords (messagefile f) { app { cat @filename(f) stdout=@filename(t); } } messagefile inputfiles[] ; foreach f in inputfiles { catfile c; c = catwords(f); } Many Thanks! -Yi Zhu From benc at hawaga.org.uk Fri May 29 18:32:06 2009 From: benc at hawaga.org.uk (Ben Clifford) Date: Fri, 29 May 2009 23:32:06 +0000 (GMT) Subject: [Swift-user] Re: [Swift-devel] Issues when running swift on fuse In-Reply-To: <1243632600.30923.3.camel@localhost> References: <4A1F8B12.8050206@cs.uchicago.edu> <1243587774.15582.7.camel@localhost> <4A2024C9.6010705@cs.uchicago.edu> <1243632600.30923.3.camel@localhost> Message-ID: probably an s3-backed filesystem is bad for storing run logs and restart logs - something more local is probably better. -- From benc at hawaga.org.uk Fri May 29 18:41:58 2009 From: benc at hawaga.org.uk (Ben Clifford) Date: Fri, 29 May 2009 23:41:58 +0000 (GMT) Subject: [Swift-user] swift syntax problem (please ignore the previous one ) In-Reply-To: <4A202825.3000809@cs.uchicago.edu> References: <4A202825.3000809@cs.uchicago.edu> Message-ID: You can use some code like the below. This uses the simple mapper to generate a new filename for otherfile, based on substituting "foo" for "hello". type messagefile; app (messagefile t) greeting() { echo "Hello, world!" stdout=@filename(t); } messagefile outfile <"/tmp/hello.txt">; messagefile otherfile ; otherfile = greeting();