Project

General

Profile

Actions

Bug #17267

closed

Can't run when $schema links are broken

Added by Peter Amstutz over 3 years ago. Updated about 3 years ago.

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

Description

Arvados uploads URLs in $schemas and converts them into keep references.

When it goes through and downloads URLs, a broken link is fatal error. This is a problem because these $schemas URLs are nonessential to running the workflow, and schema_salad can ignore broken URLs.

Arvados-cwl-runner needs to be able to ignore broken URLs in $schemas.


Subtasks 1 (0 open1 closed)

Task #17268: Review 17267-broken-schema-linksResolvedPeter Amstutz01/18/2021Actions

Related issues

Related to Arvados - Bug #16477: arvados-cwl-runner is missing --skip-schemasResolvedActions
Related to Arvados - Bug #11257: [CWL] Fails with $schemas referencing remote resources.ResolvedActions
Actions #1

Updated by Peter Amstutz over 3 years ago

  • Description updated (diff)
Actions #2

Updated by Peter Amstutz over 3 years ago

  • Related to Bug #16477: arvados-cwl-runner is missing --skip-schemas added
Actions #3

Updated by Peter Amstutz over 3 years ago

  • Related to Bug #11257: [CWL] Fails with $schemas referencing remote resources. added
Actions #4

Updated by Peter Amstutz over 3 years ago

  • Status changed from New to In Progress
Actions #5

Updated by Peter Amstutz over 3 years ago

  • Assigned To set to Peter Amstutz
Actions #7

Updated by Lucas Di Pentima over 3 years ago

  • Given that this issue is IMO pretty critical, I think it would be convenient to have it tested.
  • The changes on pathmapper.py's visit() seems to be applicable for other callers than the one processing the $schema, maybe it would need an additional argument so that the caller can ask to ignore broken links on certain cases?
  • Related Q: Would a broken schema link make validation impossible, or the schemas have other uses?
Actions #8

Updated by Peter Amstutz over 3 years ago

Lucas Di Pentima wrote:

  • Given that this issue is IMO pretty critical, I think it would be convenient to have it tested.

Yes, I wasn't quite sure if a unit test would make sense, but I could add an integration test.

  • The changes on pathmapper.py's visit() seems to be applicable for other callers than the one processing the $schema, maybe it would need an additional argument so that the caller can ask to ignore broken links on certain cases?

So, this only applies to things that are referenced in the CWL document with http links, that need to be downloaded on the fly into Arvados.

The prior behavior was that, if a http download failed, it would log an error, throw a fatal exception.

The new behavior is that if a http download fails, it logs an error, does not add an entry in the "mapper". If something tries to look the mapping without checking to see if it exists first, it will throw a fatal exception.

So I think the behavior is functionally the same.

  • Related Q: Would a broken schema link make validation impossible, or the schemas have other uses?

No, they are entirely optional. The only thing they are really used for is to check if your annotations appear in the vocabulary of the extension schema, and warn if not found. It is more to assist with spellchecking than anything.

Actions #9

Updated by Peter Amstutz over 3 years ago

17267-broken-schema-links @ b01ff2414daaf5fd8ff7f0e78ed49e63d431ccd3

Added integration test.

Actions #10

Updated by Lucas Di Pentima over 3 years ago

This LGTM, thanks!

Actions #11

Updated by Peter Amstutz over 3 years ago

  • Status changed from In Progress to Resolved
Actions #12

Updated by Peter Amstutz about 3 years ago

  • Release set to 37
Actions

Also available in: Atom PDF