Bug #4000

Updated by Tim Pierce over 5 years ago

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


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