Idea #12409
closedCWL 1.2 with conditionals
Description
Implement spec changes & cwltool support for workflow conditionals based on one of the designs described here:
https://github.com/common-workflow-language/common-workflow-language/issues/494
Once available in cwltool, we can update arvados-cwl-runner to take advantage of it.
Updated by Peter Amstutz over 6 years ago
- Target version changed from Arvados Future Sprints to 2020-01-15 Sprint
- Subject changed from [cwl] cwl-tool conditional implementation to [cwl] CWL 1.2 with conditionals
Updated by Peter Amstutz about 6 years ago
- Category set to CWL
- Subject changed from [cwl] CWL 1.2 with conditionals to CWL 1.2 with conditionals
Updated by Peter Amstutz about 6 years ago
- Start date set to 01/01/2020
- Category deleted (
CWL) - Due date set to 01/31/2020
- Project changed from Arvados to Arvados Epics
Updated by Peter Amstutz about 6 years ago
- Related to Idea #15955: CWL 1.2 added
Updated by Peter Amstutz about 6 years ago
- Related to deleted (Idea #15955: CWL 1.2)
Updated by Peter Amstutz about 6 years ago
- Project changed from Arvados Epics to Arvados
Updated by Peter Amstutz about 6 years ago
- Target version changed from 2020-01-15 Sprint to 2020-01-29 Sprint
Updated by Peter Amstutz about 6 years ago
- Target version changed from 2020-01-29 Sprint to 2020-02-12 Sprint
Updated by Peter Amstutz about 6 years ago
- Story points set to 4.0
- Assigned To set to Peter Amstutz
Updated by Peter Amstutz about 6 years ago
- Target version changed from 2020-02-12 Sprint to 2020-02-26 Sprint
Updated by Peter Amstutz about 6 years ago
- Target version changed from 2020-02-26 Sprint to 2020-03-11 Sprint
Updated by Peter Amstutz about 6 years ago
- Status changed from New to In Progress
Updated by Peter Amstutz about 6 years ago
12409-cwl-v1.2 @ f3b02f85ce244e22033e40e59caf87228b11faee
Updated by Lucas Di Pentima about 6 years ago
While trying to install a-c-r on a py3 virtualenv to run the arvbox tests, I got the following error:
error: ruamel.yaml 0.16.5 is installed but ruamel.yaml<=0.15.77,>=0.15.54 is required by {'arvados-python-client'}
Updated by Peter Amstutz about 6 years ago
Lucas Di Pentima wrote:
While trying to install a-c-r on a py3 virtualenv to run the arvbox tests, I got the following error:
[...]
Thanks, the Python SDK has a version pin on ruamel.yaml and I didn't change it. Fixed.
Updated by Lucas Di Pentima about 6 years ago
A couple more comments:
- Scripts with
set -xthat I believe are for debugging purposes:test_with_arvbox.sh- lines 6 & 99 (from past branches)build-dev-docker-jobs-image.sh- line 82 from current branch
- Have problems running cwl integration tests:
(venv-12409) lucas@buster:~/arvados/sdk/cwl/tests$ sh arvados-tests.sh
Traceback (most recent call last):
File "/home/lucas/venv-12409/lib/python3.7/site-packages/schema_salad-5.0.20200220195218-py3.7.egg/schema_salad/schema.py", line 282, in load_and_validate
strict_foreign_properties=strict_foreign_properties,
File "/home/lucas/venv-12409/lib/python3.7/site-packages/schema_salad-5.0.20200220195218-py3.7.egg/schema_salad/ref_resolver.py", line 770, in resolve_ref
strict_foreign_properties=strict_foreign_properties,
File "/home/lucas/venv-12409/lib/python3.7/site-packages/schema_salad-5.0.20200220195218-py3.7.egg/schema_salad/ref_resolver.py", line 1196, in resolve_all
strict_foreign_properties=strict_foreign_properties,
File "/home/lucas/venv-12409/lib/python3.7/site-packages/schema_salad-5.0.20200220195218-py3.7.egg/schema_salad/ref_resolver.py", line 1418, in validate_links
raise ValidationException("", None, errors)
schema_salad.exceptions.ValidationException: arvados-tests.yml:27:3: checking item
`job` field is NoneType, expected string, list, or a dict.
arvados-tests.yml:38:3: checking item
`job` field is NoneType, expected string, list, or a dict.
arvados-tests.yml:90:3: checking item
`job` field is NoneType, expected string, list, or a dict.
[...]
Updated by Lucas Di Pentima about 6 years ago
Reviewing 5782d9e6f37bde05fb7dc06a312a5a909c7223e4
I was able to run the CWL integration tests, but got 9 failures, here's an extract:
(venv-12409) lucas@buster:~/arvados/sdk/cwl/tests$ sh arvados-tests.sh
Test [1/34] Test directory in keep
Test [2/34] Test directory in keep
Test [3/34] Test default directory in keep
Test [4/34] Test default directory in keep
Test [5/34] Test hashes in filenames
Test [6/34] test shallow directory listing
Test [7/34] test no directory listing
Test [8/34] test deep directory listing
Test [9/34] Test arv:ReuseRequirement
Test [10/34] Test manipulating keep references with expression tools
Test [11/34] Test glob output on empty collection
Test [12/34] Test issue 13976
Test [13/34] RunInSingleContainer cwl.input.json needs to be consistent with pathmapper manipulations
Test 13 failed: arvados-cwl-runner --disable-reuse --compute-checksum --api=containers --outdir=/tmp/tmp617rxs_d --quiet wf/runin-wf.cwl
RunInSingleContainer cwl.input.json needs to be consistent with pathmapper manipulations
Returned non-zero
WARNING Workflow checker warning:
wf/runin-wf.cwl:33:7: 'sleeptime' is not an input parameter of ordereddict([('class', 'Workflow'),
('id',
'file:///media/psf/arvados/sdk/cwl/tests/wf/runin-wf.cwl#substep/mysub'),
('inputs', [ordereddict([('type', 'File'), ('id',
'file:///media/psf/arvados/sdk/cwl/tests/wf/runin-wf.cwl#substep/mysub/fileblub')])]),
('outputs', [ordereddict([('type', 'string'), ('outputSource',
'file:///media/psf/arvados/sdk/cwl/tests/wf/runin-wf.cwl#substep/mysub/sleep1/out'),
('id',
'file:///media/psf/arvados/sdk/cwl/tests/wf/runin-wf.cwl#substep/mysub/out')])]),
('steps', [ordereddict([('in', [ordereddict([('source',
'file:///media/psf/arvados/sdk/cwl/tests/wf/runin-wf.cwl#substep/mysub/fileblub'),
('id',
'file:///media/psf/arvados/sdk/cwl/tests/wf/runin-wf.cwl#substep/mysub/sleep1/fileblub')])]),
('out',
['file:///media/psf/arvados/sdk/cwl/tests/wf/runin-wf.cwl#substep/mysub/sleep1/out']),
('run', ordereddict([('class', 'CommandLineTool'), ('id',
'file:///media/psf/arvados/sdk/cwl/tests/wf/runin-wf.cwl#substep/mysub/sleep1/subtool'),
('inputs', [ordereddict([('type', 'File'), ('inputBinding',
ordereddict([('position', 1)])), ('id',
'file:///media/psf/arvados/sdk/cwl/tests/wf/runin-wf.cwl#substep/mysub/sleep1/subtool/fileblub')])]),
('outputs', [ordereddict([('type', 'string'), ('outputBinding',
ordereddict([('outputEval', '$("out")')])), ('id',
'file:///media/psf/arvados/sdk/cwl/tests/wf/runin-wf.cwl#substep/mysub/sleep1/subtool/out')])]),
('baseCommand', 'cat')])), ('id',
'file:///media/psf/arvados/sdk/cwl/tests/wf/runin-wf.cwl#substep/mysub/sleep1')])])]),
expected fileblub
ERROR [container runin-wf.cwl] (x2jbo-dz642-jee8sxpe2iipszv) error log:
2020-03-10T21:17:08.279914286Z stderr 2020-03-10T21:17:03.451938791Z crunch-run Running [arv-mount --foreground --allow-other --read-write --crunchstat-interval=10 --file-cache 268435456 --mount-by-pdh by_id /tmp/crunch-run.x2jbo-dz642-jjh6a2sgjxayj8j.284390681/keep505234340]
2020-03-10T21:17:08.279914286Z stderr 2020-03-10T21:17:04.144209457Z crunch-run Creating Docker container
2020-03-10T21:17:08.279914286Z stderr 2020-03-10T21:17:04.235636360Z crunch-run Attaching container streams
2020-03-10T21:17:08.279914286Z stderr 2020-03-10T21:17:04.415397883Z crunch-run Starting Docker container id '5c103b7eb0bb3546525fb6e44b5c10588a9b578b3de16f7eb18f7bcc9485b946'
2020-03-10T21:17:08.279914286Z stderr 2020-03-10T21:17:04.556779046Z crunch-run Waiting for container to finish
2020-03-10T21:17:08.279914286Z stderr 2020-03-10T21:17:05.718329012Z stderr INFO /usr/bin/cwltool 1.0.20190603140227
2020-03-10T21:17:08.279914286Z stderr 2020-03-10T21:17:05.725322562Z stderr INFO Resolved 'workflow.cwl#main' to 'file:///var/spool/cwl/workflow.cwl#main'
2020-03-10T21:17:08.279914286Z stderr 2020-03-10T21:17:05.822369379Z stderr ERROR Tool definition failed validation:
2020-03-10T21:17:08.279914286Z stderr 2020-03-10T21:17:05.822369379Z stderr The CWL reference runner no longer supports pre CWL v1.0 documents. Supported versions are:
2020-03-10T21:17:08.279914286Z stderr 2020-03-10T21:17:05.822369379Z stderr v1.0
2020-03-10T21:17:08.279914286Z stderr 2020-03-10T21:17:05.822369379Z stderr v1.1
2020-03-10T21:17:08.279914286Z stderr 2020-03-10T21:17:05.822369379Z stderr v1.1.0-dev1 (with --enable-dev flag only)
2020-03-10T21:17:08.279914286Z stderr 2020-03-10T21:17:05.963152671Z crunch-run Container exited with code: 1
2020-03-10T21:17:08.279914286Z stderr 2020-03-10T21:17:06.018476974Z crunch-run copying "/cwl.output.json" (0 bytes)
2020-03-10T21:17:08.279914286Z stderr 2020-03-10T21:17:06.055107113Z crunch-run Complete
2020-03-10T21:17:08.405690646Z stderr ERROR [container substep] while getting output object:
2020-03-10T21:17:08.405690646Z stderr Traceback (most recent call last):
2020-03-10T21:17:08.405690646Z stderr File "/usr/local/lib/python3.5/dist-packages/arvados_cwl/arvcontainer.py", line 364, in done
2020-03-10T21:17:08.405690646Z stderr outputs = done.done_outputs(self, container, "/tmp", self.outdir, "/keep")
2020-03-10T21:17:08.405690646Z stderr File "/usr/local/lib/python3.5/dist-packages/arvados_cwl/done.py", line 55, in done_outputs
2020-03-10T21:17:08.405690646Z stderr return self.collect_outputs("keep:" + record["output"], record["exit_code"])
2020-03-10T21:17:08.405690646Z stderr File "/usr/local/lib/python3.5/dist-packages/cwltool/command_line_tool.py", line 811, in collect_output_ports
2020-03-10T21:17:08.405690646Z stderr ret = json.load(f)
2020-03-10T21:17:08.405690646Z stderr File "/usr/lib/python3.5/json/__init__.py", line 268, in load
2020-03-10T21:17:08.405690646Z stderr parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
2020-03-10T21:17:08.405690646Z stderr File "/usr/lib/python3.5/json/__init__.py", line 319, in loads
2020-03-10T21:17:08.405690646Z stderr return _default_decoder.decode(s)
2020-03-10T21:17:08.405690646Z stderr File "/usr/lib/python3.5/json/decoder.py", line 339, in decode
2020-03-10T21:17:08.405690646Z stderr obj, end = self.raw_decode(s, idx=_w(s, 0).end())
2020-03-10T21:17:08.405690646Z stderr File "/usr/lib/python3.5/json/decoder.py", line 357, in raw_decode
2020-03-10T21:17:08.405690646Z stderr raise JSONDecodeError("Expecting value", s, err.value) from None
2020-03-10T21:17:08.405690646Z stderr json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2020-03-10T21:17:08.499524827Z stderr ERROR [step substep] Output is missing expected field file:///var/lib/cwl/workflow.json#main/substep/out
2020-03-10T21:17:08.603126883Z stderr WARNING [step substep] completed permanentFail
2020-03-10T21:17:08.713455729Z stderr INFO [workflow workflow.json#main] completed permanentFail
2020-03-10T21:17:08.713455729Z stderr ERROR Overall process status is permanentFail
2020-03-10T21:17:08.867141448Z stderr INFO Final output collection 237233ea9b49c1486aabfc86fbb7bc74+59 "Output of main" (x2jbo-4zz18-6a5guiu8nd0be0y)
2020-03-10T21:17:09.086793907Z stderr WARNING Final process status is permanentFail
2020-03-10T21:17:09.514881027Z crunch-run Container exited with code: 1
2020-03-10T21:17:09.537807614Z crunch-run Complete
ERROR Overall process status is permanentFail
WARNING Final process status is permanentFail
[...]
I've launched a Jenkins job: arvados-cwl-conformance-tests: #384 but it's failing for other purposes.
Updated by Peter Amstutz about 6 years ago
- Target version changed from 2020-03-11 Sprint to 2020-03-25 Sprint
Updated by Peter Amstutz about 6 years ago
12409-cwl-v1.2 @ cf447c1718535fe924005db53bed5011c714dd63
Preserve original version when packing a document for use with RunInSingleContainer.
Updated by Lucas Di Pentima about 6 years ago
Local cwl integration tests run was OK, but sdk/cwl tests failed both local and on jenkins.
Updated by Peter Amstutz about 6 years ago
12409-cwl-v1.2 @ 60ed2df387ca0ee304bf8d2e40f2199184375b29
Updated by Peter Amstutz about 6 years ago
- Status changed from In Progress to Resolved