-
-
Notifications
You must be signed in to change notification settings - Fork 233
Open
Description
#!/usr/bin/env cwl-runner
cwlVersion: v1.0
class: CommandLineTool
inputs: []
baseCommand: [ bash, -c ]
arguments:
- "mkdir foo; echo 42 > foo/bar; ln -s $PWD/foo/bar foo/baz"
outputs:
result:
type: Directory
outputBinding:
glob: foo
Short term workaround: use --copy-outputs
but that leaves intermediate files laying around afterwards.
Example error:
$ TMPDIR=$PWD cwltool --debug tests/symlinks.cwl
INFO /home/michael/ebi/env/bin/cwltool 3.1.20210623153106
INFO Resolved 'tests/symlinks.cwl' to 'file:///home/michael/cwltool/tests/symlinks.cwl'
DEBUG Parsed job order from command line: {
"id": "tests/symlinks.cwl"
}
DEBUG [job symlinks.cwl] initializing from file:///home/michael/cwltool/tests/symlinks.cwl
DEBUG [job symlinks.cwl] {}
DEBUG [job symlinks.cwl] path mappings is {}
DEBUG [job symlinks.cwl] command line bindings is [
{
"position": [
-1000000,
0
],
"datum": "bash"
},
{
"position": [
-1000000,
1
],
"datum": "-c"
},
{
"position": [
0,
0
],
"datum": "mkdir foo; echo 42 > foo/bar; ln -s $PWD/foo/bar foo/baz"
}
]
DEBUG [job symlinks.cwl] initial work dir {}
INFO [job symlinks.cwl] /home/michael/cwltool/l6s28ubx$ bash \
-c \
'mkdir foo; echo 42 > foo/bar; ln -s $PWD/foo/bar foo/baz'
DEBUG Could not collect memory usage, job ended before monitoring began.
INFO [job symlinks.cwl] completed success
DEBUG [job symlinks.cwl] outputs {
"result": {
"location": "file:///home/michael/cwltool/l6s28ubx/foo",
"basename": "foo",
"nameroot": "foo",
"nameext": "",
"class": "Directory"
}
}
DEBUG [job symlinks.cwl] Removing input staging directory /home/michael/cwltool/tp94m_vi
DEBUG [job symlinks.cwl] Removing temporary directory /home/michael/cwltool/2zomy12a
DEBUG Moving /home/michael/cwltool/l6s28ubx/foo to /home/michael/cwltool/foo
DEBUG Moving /home/michael/cwltool/l6s28ubx/foo/bar to /home/michael/cwltool/foo/bar
DEBUG Moving /home/michael/cwltool/l6s28ubx/foo/bar to /home/michael/cwltool/foo/baz
ERROR Unhandled error:
[Errno 2] No such file or directory: '/home/michael/cwltool/l6s28ubx/foo/bar'
Traceback (most recent call last):
File "/usr/lib/python3.9/shutil.py", line 806, in move
os.rename(src, real_dst)
FileNotFoundError: [Errno 2] No such file or directory: '/home/michael/cwltool/l6s28ubx/foo/bar' -> '/home/michael/cwltool/foo/baz'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/michael/cwltool/cwltool/main.py", line 1248, in main
(out, status) = real_executor(
File "/home/michael/cwltool/cwltool/executors.py", line 59, in __call__
return self.execute(process, job_order_object, runtime_context, logger)
File "/home/michael/cwltool/cwltool/executors.py", line 155, in execute
self.final_output[0] = relocateOutputs(
File "/home/michael/cwltool/cwltool/process.py", line 400, in relocateOutputs
stage_files(pm, stage_func=_relocate, symlink=False, fix_conflicts=True)
File "/home/michael/cwltool/cwltool/process.py", line 296, in stage_files
stage_func(entry.resolved, entry.target)
File "/home/michael/cwltool/cwltool/process.py", line 371, in _relocate
_relocate(dir_entry.path, fs_access.join(dst, dir_entry.name))
File "/home/michael/cwltool/cwltool/process.py", line 373, in _relocate
shutil.move(src, dst)
File "/usr/lib/python3.9/shutil.py", line 820, in move
copy_function(src, real_dst)
File "/usr/lib/python3.9/shutil.py", line 435, in copy2
copyfile(src, dst, follow_symlinks=follow_symlinks)
File "/usr/lib/python3.9/shutil.py", line 264, in copyfile
with open(src, 'rb') as fsrc, open(dst, 'wb') as fdst:
FileNotFoundError: [Errno 2] No such file or directory: '/home/michael/cwltool/l6s28ubx/foo/bar'
Metadata
Metadata
Assignees
Labels
No labels