Closed Bug 1764371 Opened 3 years ago Closed 3 years ago

reruns of release promotion action tasks shouldn't unblock tasks created by a previous run

Categories

(Firefox Build System :: Task Configuration, task)

task

Tracking

(firefox102 fixed)

RESOLVED FIXED
102 Branch
Tracking Status
firefox102 --- fixed

People

(Reporter: jcristau, Assigned: jcristau)

References

Details

Attachments

(1 file, 1 obsolete file)

When an relpro action task fails, it may already have created tasks, which will be unblocked if/when it's rerun successfully. The new run will create duplicate tasks, which is not safe.
We could either 1) add a breakpoint task that blocks release tasks on the specific run of the action task being completed, or 2) have the relpro action task cancel any existing tasks in its task group before creating new ones.

or 3) have relpro fail if there are existing unscheduled tasks in its task group.

Release promotion action tasks aren't atomic, so they may schedule some
tasks, then fail. The scheduled tasks depend on the action task so
normally they never run and everything's fine.
However if the action task is rerun, if the rerun succeeds it unblocks
both the tasks it scheduled and the ones scheduled by previous runs,
which may not be safe.
Prevent this by explicitly cancelling existing tasks in the group before
anything else.

Release promotion action tasks aren't atomic, so they may schedule some
tasks, then fail. The scheduled tasks depend on the action task so
normally they never run and everything's fine.
However if the action task is rerun, if the rerun succeeds it unblocks
both the tasks it scheduled and the ones scheduled by previous runs,
which may not be safe.
Prevent this by explicitly checking for existing tasks in the group
before anything else, and returning an error if any are incomplete.

I've got tentative patches for 2 and 3. 1 sounds nicer but also probably more work. wdyt?

Flags: needinfo?(aki)

Nice! Have you been able to test this?

I'm leaning towards 3, because of this hypothetical scenario:

  • we are running a valid and wanted release promotion graph
  • someone accidentally force-reruns the release promotion action

which would lead to the in-progress graph getting cancelled, possibly with partial uploads to archive.m.o, and we need a build 2.

Flags: needinfo?(aki)
Attachment #9274237 - Attachment is obsolete: true

(In reply to Aki Sasaki [:aki] (he/him) (UTC-6) from comment #5)

Nice! Have you been able to test this?

Not yet, planning to do that this week.

I'm leaning towards 3, because of this hypothetical scenario:

  • we are running a valid and wanted release promotion graph
  • someone accidentally force-reruns the release promotion action

which would lead to the in-progress graph getting cancelled, possibly with partial uploads to archive.m.o, and we need a build 2.

Makes sense, I guess I didn't think about force-reruns.

Summary: reruns of release promotion action tasks should cancel tasks created by previous runs → reruns of release promotion action tasks shouldn't unblock tasks created by a previous run
Assignee: nobody → jcristau
Status: NEW → ASSIGNED
Pushed by jcristau@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/2aa73f78422b relpro: check for existing tasks in the task group on rerun r=releng-reviewers,hneiva
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 102 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: