Open Bug 1271677 Opened 5 years ago Updated 3 years ago

Interactive tasks should be scheduled with high priority


(Firefox Build System :: Task Configuration, task, P2)



(Not tracked)


(Reporter: ahal, Unassigned)


(Depends on 1 open bug, Blocks 1 open bug)



(1 file)

In the taskcluster task inspector, developers can press the "One click loaner" button to schedule a new interactive task based on the non-interactive variant. This will schedule the job, download the image, and then provide a shell/vnc session which the developer is able to connect to.

Developers who have pressed this button need to wait around for this job to become ready. Once it is ready, they have a finite amount of time to connect (currently set to 5 minutes). Because of this, they need to be constantly monitoring the state of their job so they don't miss the window.

We should try our best to make the task ready to connect ASAP, so developers waste as little time as possible waiting around. Sometimes scheduling the job can take awhile (I've seen ~15 minutes for linux64). We should bump the priority of these jobs to reduce that time.

I'm not sure if the scheduler is able to distinguish between interactive/non-interactive. This may be something that we need to implement.
Component: General Automation → General
Product: Release Engineering → Taskcluster
QA Contact: catlee
Component: General → Tools
So I thought this would work at first, but I don't have the "queue:task-priority:high" scope. Which means, this won't work for the average developer either because they also (likely) won't have that scope.

Is there a way to do this automatically and securely for interactive tasks regardless of whether the requester has this scope or not?
Flags: needinfo?(jopsen)
No, either you have a scope or you don't :)

Hmm... Maybe we can give "queue:task-priority:high" to everybody in team_moco. That seems reasonable.
I think there are some long term plans to introduce additional priority levels, so giving high
to everybody might be okay.
Flags: needinfo?(jopsen)
I would be okay, giving "queue:task-priority:high" to team_moco, but curious if you have any thoughts.
 - Maybe one day we'll have an actual process for scope changes :)
Flags: needinfo?(dustin)
I feel like every question about priorities comes down to tail-chasing: if we give everyone "queue:task-priority:high", then do we need a higher priority for people who actually want their jobs done in a timely fashion?

That said, I don't object to granting that scope.
Flags: needinfo?(dustin)
So I think this situation will come up fairly often in the future as well. We'll want to be able to say task X should get scheduled before task Y, regardless of who pushes. Some examples of tasks that we might want to be higher priority:

* interactive tasks
* decision tasks
* tasks with >N children

These examples are about certain tasks being scheduled ahead of other tasks and who happened to do the push is irrelevant.
Any options on how to implement this?
How big of a project can this be?
Priority: -- → P2
Component: Tools → General
Could we do this with action tasks + hooks to allow for granting the high priority scopes?
Flags: needinfo?(dustin)
Sounds like a good plan.
Assignee: nobody → dustin
Flags: needinfo?(dustin)
See Also: → 1443974
The actions-as-hooks has just landed, enabling this.
Hm, the situation with workerTypes scopes still needs some abstraction.  I think that will require some more refactoring..
Assignee: dustin → nobody
Component: General → Task Configuration
Depends on: 1486544
Product: Taskcluster → Firefox Build System
You need to log in before you can comment on or make changes to this bug.