Project

General

Profile

Actions

Bug #19678

closed

arvados-cwl-runner: id name must be a string

Added by Lily Coultas over 1 year ago. Updated over 1 year ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
-
Target version:
Story points:
-
Release relationship:
Auto

Description

arvados-cwl-runner errors if there is an id: name that is not a string, when running a cwl file.

Minimal example (using a record to store a first and last name):

cwl file:

---
class: Workflow
cwlVersion: v1.1
inputs:
  - type:
      fields:
        - name: first
          type: string
        - name: last
          type: string
      type: record
    id: name
outputs:
  - type:
      fields:
        - name: first
          type: string
        - name: last
          type: string
      type: record
    id: processed_name
    outputSource: name
steps: []

input.json:

{"name":{"first":"foo","last":"bar"}}

When running the above file with cwltool, it produces the expected output:

{"processed_name": {"first": "foo", "last": "bar"}}

When running with arvados-cwl-runner --local minimal.cwl input.json it produces the following error:

ERROR Input object failed validation:
identifier field 'ordereddict([('first', 'foo'), ('last', 'bar')])' must be a string

The above failing workflow can be made to work by changing the inputs called name to be called notname instead, so it seems likely the bug may have something to do with treating name in a special way.


Related issues

Related to Arvados - Bug #19599: ContextualVersionConflict 'importlib-metadata<5,>=0.23; python_version == "3.7"'), {'argcomplete'})ResolvedPeter AmstutzActions
Is duplicate of Arvados - Bug #19571: arvados-cwl-runner scattering bugResolvedPeter Amstutz10/28/2022Actions
Actions #1

Updated by Peter Amstutz over 1 year ago

I think what is happening is that name is a de facto reserved word (because CWL parameter definitions also have an identifier field called name). It should handle it better (either not fail, or give a more useful error message), but as you have already discovered, the workaround is simply to call the parameter something else.

Actions #2

Updated by Peter Amstutz over 1 year ago

  • Related to Bug #19571: arvados-cwl-runner scattering bug added
Actions #3

Updated by Peter Amstutz over 1 year ago

  • Related to deleted (Bug #19571: arvados-cwl-runner scattering bug)
Actions #4

Updated by Peter Amstutz over 1 year ago

  • Is duplicate of Bug #19571: arvados-cwl-runner scattering bug added
Actions #5

Updated by Peter Amstutz over 1 year ago

  • Target version set to 2022-11-09 sprint
  • Assigned To set to Peter Amstutz
Actions #6

Updated by Peter Amstutz over 1 year ago

  • Related to Bug #19599: ContextualVersionConflict 'importlib-metadata<5,>=0.23; python_version == "3.7"'), {'argcomplete'}) added
Actions #7

Updated by Peter Amstutz over 1 year ago

  • Status changed from New to Resolved
Actions #8

Updated by Peter Amstutz over 1 year ago

  • Release set to 47
Actions #9

Updated by Brett Smith over 1 year ago

  • Release changed from 47 to 54
Actions

Also available in: Atom PDF