-
Bug
-
Resolution: Unresolved
-
Major
-
None
Setup
Set Jenkins to have one node (master), and two executors.
Create a throttle category my-category with global max 1.
Create freestyle project A.
Build step `sleep 10`.
Create freestyle project B.
Throttle on my-category.
Build step `sleep 10`.
Create freestyle project C.
Throttle on my-category.
Build step `sleep 10`.
Post-build, trigger downstream project D.
Create freestyle project D.
Block on upstream jobs.
Build step `sleep 10`.
Trigger A, B, C, and D, in that order.
—
Expected
A starts.
B starts.
A finishes.
B finishes.
C starts.
C finishes.
D starts.
D finishes.
—
Actual
A starts.
B starts.
A finishes.
D starts.
B finishes.
C starts.
D finishes.
C finishes.
D does not wait on C.
—
I also tried lockable resource plugin with the same setup, but it didn't work either.
I do not know of any workaround.
- is related to
-
JENKINS-28887 blocking jobs
-
- Resolved
-
I would say there's no bug:
1) You do not throttle D, hence Jenkins is eligible to run it when it has a free executor
2) "Block on upstream jobs" only prevents conflicts of RUNNING jobs, a task in the queue does not prevent D from starting
3) C is blocked by throttling, hence Jenkins takes D
Paul, do you agree?