Bug #17300

array of array of File causes 'NoneType' object has no attribute 'resolved'

Added by Stanislaw Adaszewski 10 months ago.

Status:
New
Priority:
High
Assigned To:
-
Category:
-
Target version:
-
Start date:
Due date:
% Done:

0%

Estimated time:
Story points:
-

Description

When running an ExpressionTool which has an output of the following type:

outputs:
  subject_images:
    type:
      type: array # subjects
      items:
        type: array # timepoints
        items: File

I receive the following error:

ERROR Unhandled error:
  'NoneType' object has no attribute 'resolved'
Traceback (most recent call last):
  File "/usr/share/python2.7/dist/python-arvados-cwl-runner/lib/python2.7/site-packages/cwltool/main.py", line 833, in main
    logger=_logger)
  File "/usr/share/python2.7/dist/python-arvados-cwl-runner/lib/python2.7/site-packages/arvados_cwl/executor.py", line 767, in arv_executor
    self.final_output, self.final_output_collection = self.make_output_collection(self.output_name, storage_classes, self.output_tags, self.final_output)
  File "/usr/share/python2.7/dist/python-arvados-cwl-runner/lib/python2.7/site-packages/arvados_cwl/executor.py", line 467, in make_output_collection
    adjustFileObjs(outputObj, rewrite)
  File "/usr/share/python2.7/dist/python-arvados-cwl-runner/lib/python2.7/site-packages/cwltool/pathmapper.py", line 48, in adjustFileObjs
    visit_class(rec, ("File",), op)
  File "/usr/share/python2.7/dist/python-arvados-cwl-runner/lib/python2.7/site-packages/cwltool/utils.py", line 221, in visit_class
    visit_class(rec[d], cls, op)
  File "/usr/share/python2.7/dist/python-arvados-cwl-runner/lib/python2.7/site-packages/cwltool/utils.py", line 224, in visit_class
    visit_class(d, cls, op)
  File "/usr/share/python2.7/dist/python-arvados-cwl-runner/lib/python2.7/site-packages/cwltool/utils.py", line 224, in visit_class
    visit_class(d, cls, op)
  File "/usr/share/python2.7/dist/python-arvados-cwl-runner/lib/python2.7/site-packages/cwltool/utils.py", line 219, in visit_class
    op(rec)
  File "/usr/share/python2.7/dist/python-arvados-cwl-runner/lib/python2.7/site-packages/arvados_cwl/executor.py", line 461, in rewrite
    fileobj["location"] = generatemapper.mapper(fileobj["location"]).target
  File "/usr/share/python2.7/dist/python-arvados-cwl-runner/lib/python2.7/site-packages/arvados_cwl/pathmapper.py", line 332, in mapper
    return MapperEnt(v.resolved, v.target + src[i:], v.type, v.staged)
AttributeError: 'NoneType' object has no attribute 'resolved'

If I replace type: File with type: string and store locations instead of File objects the request finishes successfully and returns the expected list of locations.

Also available in: Atom PDF