Skip to content
Commit 1ac4872e authored by Kohsuke Kawaguchi's avatar Kohsuke Kawaguchi
Browse files

maintain() should assign buildable stuff to executors.

This came out of the conversation with Nicolas.

When QueueTaskDispatcher vetos the assignment, a buildable item might
stay buildable and unexecuted. Ane he found that it doesn't get retried,
despite the MaintainTask class that attempts to do so.

The issue is that the maintain() method actually doesn't try to assign
buildable tasks to executors. That happens inside the pop() method.
I think this goes against the original design of the maintain() method,
which is a giant synchronized block that moves all the relevant actors
from one state to another.

So I'm moving this code into the maintain method. In this way,
MaintainTask will automatically reattempt to assign buildable items
to executors, and scheduleMaintenance() and maintain() will really
do the same thing, and it solves the original problem.
parent 8e9d6085
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment