Project

General

Profile

Actions

Feature #14706

closed

[Crunch2] Retain references + permissions to earlier containers when retrying a container request

Added by Peter Amstutz over 5 years ago. Updated over 4 years ago.

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

Description

The container request record lists the most recent container attempted to fulfill the request. This means when a cancelled container is retried, the earlier cancelled containers are not visible to the user: the container UUID is no longer mentioned in the container request record, which means that even if the client remembers the UUID, the user no longer has permission to retrieve the container record.

(See #14870 for the related problem that the logs from previous attempts are not preserved in the container request's log collection.)

Proposal:

Need a column that has uuids of all containers. Can use array column, eg https://www.postgresql.org/docs/9.6/arrays.html, or JSONB column.

Current data model has "container_uuid" as a singular value. It would be a backwards compatibility problem if that changed to be an array. API should report past attempts in a separate field, like "past_container_uuids".

Unclear if it would be better in the underlying database to have a single array column (where first/last item is always the most recent attempt), or retain container_uuid column and add a past_container_uuids column.

Need to be able to join array column to grant read permission to container records. Section 8.15.5 of postgres docs suggest this is something like:

container.uuid = ANY (container_request.past_container_uuids)


Related issues

Related to Arvados - Feature #8018: [Crunch2] Identify container failure and retryResolvedPeter Amstutz09/23/2016Actions
Related to Arvados - Idea #14870: [API] Access logs from previous attempts after auto-retrying a container requestResolvedPeter Amstutz03/01/2019Actions
Actions

Also available in: Atom PDF