Project

General

Profile

Actions

Bug #4000

closed

[API] "re-run with latest" yields fiddlesticks if pipeline template has been updated with new components

Added by Tim Pierce over 9 years ago. Updated over 9 years ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Tim Pierce
Category:
API
Target version:
Story points:
1.0

Description

Attempting to re-run qr1hi-d1hrv-to0ukub4m8aqcg7 goes to
https://workbench.qr1hi.arvadosapi.com/pipeline_instances/qr1hi-d1hrv-to0ukub4m8aqcg7/copy?components=use_latest&pipeline_instance%5Bstate%5D=RunningOnServer&script=use_latest and produces:

Oh... fiddlesticks.
Sorry, I had some trouble handling your request.

undefined method `[]' for nil:NilClass

The cause here is that the pipeline template has been updated to include new components, so when PipelineInstancesController.copy attempts to copy the script_parameters for those components from the original instance, it throws an exception at https://arvados.org/projects/arvados/repository/revisions/9be9761666fd091496bee885b37598db9a6ab38a/entry/apps/workbench/app/controllers/pipeline_instances_controller.rb#L22:

srcvalue = source.components[cname][:script_parameters][pname]
More precisely: this occurs when copying a pipeline with components = use_latest, and
  • the pipeline template includes components that are not present in the instance
    • at least one of which includes a script_parameter that
      • is a hash
        • with a 'dataclass' field

Whew.

Short-term fix is to make sure that the copying process gracefully handles any unexpected changes between the template and the instance.


Subtasks 2 (0 open2 closed)

Task #4047: Review 4000-rerun-pipeline-changed-templateResolvedTim Pierce09/30/2014Actions
Task #4021: make PipelineInstance.copy handle exceptions gracefullyResolvedTim Pierce09/30/2014Actions
Actions

Also available in: Atom PDF