Bug #17267
closedCan't run when $schema links are broken
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.
Updated by Peter Amstutz almost 4 years ago
- Related to Bug #16477: arvados-cwl-runner is missing --skip-schemas added
Updated by Peter Amstutz almost 4 years ago
- Related to Bug #11257: [CWL] Fails with $schemas referencing remote resources. added
Updated by Peter Amstutz almost 4 years ago
- Status changed from New to In Progress
Updated by Peter Amstutz almost 4 years ago
17267-broken-schema-links @ 29a8298caf922a2651fbd51baf7b97b58ae25840
Updated by Lucas Di Pentima almost 4 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?
Updated by Peter Amstutz almost 4 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.
Updated by Peter Amstutz almost 4 years ago
17267-broken-schema-links @ b01ff2414daaf5fd8ff7f0e78ed49e63d431ccd3
Added integration test.
Updated by Peter Amstutz almost 4 years ago
- Status changed from In Progress to Resolved