-
Notifications
You must be signed in to change notification settings - Fork 240
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
toil ignores LoadListingRequirement #5099
Comments
toil-cwl-runner should be differentiating the listing values internally: Lines 3456 to 3512 in 8faca0f
Though it seems like it's not working. @mr-c Is there a test in the CWL conformance tests that tests this requirement? |
However, they are all single Looks like we should create additional conformance tests once this bug is figured out. @adrabent , thank you for reporting this! |
Seems like there are conformance tests for LoadListingRequirement: https://github.com/common-workflow-language/cwl-v1.2/blob/15d152dbf04f149845d9348c80694a377c558346/conformance_tests.yaml#L2987-L3069 toil-cwl-runner seems to pass this. @adrabent Could you provide an example of where LoadListingRequirement is not working? |
I've tried testing LoadListingRequirement on a cwl expression: #!/usr/bin/env cwl-runner
cwlVersion: v1.2
class: CommandLineTool
requirements:
InlineJavascriptRequirement: {}
LoadListingRequirement:
loadListing: shallow_listing
inputs:
input_directory:
type: Directory
outputs:
output_file:
type: string
outputBinding:
outputEval: $(JSON.stringify(inputs.input_directory))
stdout_file:
type: stdout
stdout: output.txt
baseCommand: tree
arguments:
- $(inputs.input_directory) With a JSON input of {
"input_directory": {"class": "Directory", "location": "directory"}
} And a directory in the current working directory of:
After running
The So I'm unsure how to replicate this for now. |
I tried to reproduce the listing behaviour with a minimal example workflow as well.
Here, I need to make use of a docker container as well as
Now I can call
Now if I change from
For
If I repeat this exercise with
I would expect two things:
|
It does look like cwltool is doing the wrong thing. Though no matter what the LoadListingRequirement is, the docker mount should just be the top level directory. For this workflow at least, there is no reason to have any more than one mount of the TLD. @mr-c |
➤ Adam Novak commented: Our options for moving forward with this might be writing a conformance test for the CWL test suite to make sure the right stuff is exposed to expressions, or digging into PathMapper to see why the cwltool one we use when bypassing the file store is making all these mounts. (I’m not sure if a bunch of superfluous mounts is actually non-conformant though.) |
When using
toil-cwl-runner
it seems like it always usesdeep_listing
when files or directories are mounted for running within Docker or Singularity.If I try to add LoadListingRequirement and set it to
shallow_listing
this simply gets ignored. If I usecwltool
it works as expected.┆Issue is synchronized with this Jira Story
┆Issue Number: TOIL-1649
The text was updated successfully, but these errors were encountered: