Actions
Bug #21039
openarvados-cwl-runner crashes when running a registered workflow with duplicate enum types
Story points:
-
Description
Steps to reproduce:
- Write a workflow with a separate step file where both use an input with the same enum type.
- Register that workflow in Arvados:
arvados-cwl-runner --create-workflow pathv2.cwl
- Submit the registered workflow to Arvados:
arvados-cwl-runner --submit PATH_V2_CWL_UUID path.yml
arvados-cwl-runner
crashes with:
ERROR Workflow execution failed [117/1341] Traceback (most recent call last): File "schema_salad/avro/schema.py", line 405, in __init__ File "schema_salad/avro/schema.py", line 595, in make_avsc_object File "schema_salad/avro/schema.py", line 373, in __init__ File "schema_salad/avro/schema.py", line 253, in __init__ File "schema_salad/avro/schema.py", line 219, in add_name schema_salad.avro.schema.SchemaParseException: The name 'inpath4d79f6d1-f680-4e05-aa56-c759167a7e80' is already in use. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/share/python3/dist/python3-arvados-cwl-runner/lib/python3.7/site-packages/arvados_cwl/executor.py", line 854, in arv_executor for runnable in jobiter: File "/usr/share/python3/dist/python3-arvados-cwl-runner/lib/python3.7/site-packages/arvados_cwl/runner.py", line 896, in job self._init_job(job_order, runtimeContext) File "/usr/share/python3/dist/python3-arvados-cwl-runner/lib/python3.7/site-packages/cwltool/process.py", line 891, in _init_job discover_secondaryFiles=getdefault(runtime_context.toplevel, False), File "/usr/share/python3/dist/python3-arvados-cwl-runner/lib/python3.7/site-packages/cwltool/builder.py", line 335, in bind_input discover_secondaryFiles=discover_secondaryFiles, File "/usr/share/python3/dist/python3-arvados-cwl-runner/lib/python3.7/site-packages/cwltool/builder.py", line 249, in bind_input avsc = make_avsc_object(convert_to_dict(t), self.names) File "schema_salad/avro/schema.py", line 608, in make_avsc_object File "schema_salad/avro/schema.py", line 407, in __init__ schema_salad.avro.schema.SchemaParseException: Items schema ({'symbols': ['_', '_usr', '_usr_local'], 'type': 'enum', 'name': 'inpath4d79f6d1-f680-4e05-aa56-c759167a7e80'}) not a valid Avro schema: The name 'inpath4d79f6d1-f680-4e05-aa56-c759167a7e80' is already in use.. Known names: ['org.w3id.cwl.cwl.File', 'org.w3id.cwl.cwl.File.class.File_class', 'org.w3id.cwl.cwl.Directory', 'org.w3id.cwl.cwl.Directory.class.Directory_class', 'org.w3id.cwl.salad.Any', 'input_record_schema', 'inpath4d79f6d1-f680-4e05-aa56-c759167a7e80', 'outputs_record_schema']). ERROR Workflow error, try again with --debug for more information: Workflow did not return a result.
Some interesting notes:
- If you run the workflow without registering it, it works fine.
- If you run the workflow with
--local
instead of--submit
, it works fine. - If you define the enum type in
SchemaDefRequirement
, it works fine.
Files
Updated by Brett Smith about 1 year ago
- File pathv2.cwl pathv2.cwl added
- File path.yml path.yml added
- File buildpathv2.cwl buildpathv2.cwl added
Actions