Comment 5 for bug 478691

Revision history for this message
Fabien Tassin (fta) wrote :

While i understand the previous situation was unfair, the new algorithm is even more unfair for active teams, it's even counter productive. (if it has been done because dailies are no longer welcome, just tell me, i'll shut down the ones i manage). IMHO, the 1st task should have been to prune off the packages that have been building in loops for months/years waiting for something that will never happen (depwaits, mostly).
Anyway..

Processor Builders Queue
amd64 13 38 jobs (1 hour 30 minutes)
i386 16 45 jobs (1 hour 40 minutes)
lpia 12 36 jobs (1 hour 40 minutes)

with resp. 5, 8 and 7 builders idle. So it seems several team/people are impacted, not just mozilla & chromium.
It's a waste of resources and time for everyone. That number of machines should be more than enough to handle the current load.

IMHO, *no* machine should be idle if the corresponding arch queue is not empty.
It would be better for everyone to queue new entries by interleaving them after those waiting for a builder, but in front of those that are owned by a user/team already building something, disregarding what has already been built.

Say you have 3 builders M1, M2, M3 and 5 Teams/Users at work A, B, C, D, E.

A pushes A1 & A2 => M1 (A1), M2 (A2), M3 (idle) + Q (empty)
B pushes B1 => M1 (A1), M2 (A2), M3 (B1) + Q (empty)
C pushes C1 & C2 & C3 => M1 (A1), M2 (A2), M3 (B1) + Q (C1, C2, C3)
A pushes A3 & A4 => M1 (A1), M2 (A2), M3 (B1) + Q (C1, A3, C2, A4, C3)
C pushes C4 & C5 => M1 (A1), M2 (A2), M3 (B1) + Q (C1, A3, C2, A4, C3, C4, C5)
D pushes D1 => M1 (A1), M2 (A2), M3 (B1) + Q (C1, D1, A3, C2, A4, C3, C4, C5)
M1 completes A1 => M1 (C1), M2 (A2), M3 (B1) + Q (D1, A3, C2, A4, C3, C4, C5)
M3 completes B1 => M1 (C1), M2 (A2), M3 (D1) + Q (A3, C2, A4, C3, C4, C5)
M2 completes A2 => M1 (C1), M2 (A3), M3 (D1) + Q (C2, A4, C3, C4, C5)
B pushes B2 => M1 (C1), M2 (A3), M3 (D1) + Q (B2, C2, A4, C3, C4, C5)
E pushes E1 => M1 (C1), M2 (A3), M3 (D1) + Q (B2, E1, C2, A4, C3, C4, C5)
etc.

it's just a matter of creating the queue in a fair way, builders just have to get the tip as usual.
Even if someone pushes 200 packages while all the builders are idle (think of langpacks, or test rebuilds), if someone arrives just after to build something, he just have to wait for 1 machine to complete its current build. Sounds reasonable to me.

btw, queue times are now nonsensical as they now depend on the team/user Q. For mozilla, it's close to 20h, it will be more than 24h once i add lucid, meaning the last packages will never be published.