-
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
-
[JENKINS-27968] Throttle concurrent builds and lockable resource do not work with block on upstream
Description |
Original:
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 5`. Create freestyle project B. Throttle on my-category. Build step `sleep 10`. Create freestyle project C. Throttle on my-category. Build step `sleep 10`. 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. --- What I expected: A and B start. A finishes. B finishes. C starts. C finishes. D starts. D finishes. --- What happened: A and B start. 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. |
New:
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 5`. Create freestyle project B. Throttle on my-category. Build step `sleep 10`. Create freestyle project C. Throttle on my-category. Build step `sleep 10`. 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. --- What I expected: A starts. B starts. A finishes. B finishes. C starts. C finishes. D starts. D finishes. --- What happened: 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. |
Description |
Original:
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 5`. Create freestyle project B. Throttle on my-category. Build step `sleep 10`. Create freestyle project C. Throttle on my-category. Build step `sleep 10`. 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. --- What I expected: A starts. B starts. A finishes. B finishes. C starts. C finishes. D starts. D finishes. --- What happened: 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. |
New:
*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 5`. Create freestyle project B. Throttle on my-category. Build step `sleep 10`. Create freestyle project C. Throttle on my-category. Build step `sleep 10`. 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. |
Description |
Original:
*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 5`. Create freestyle project B. Throttle on my-category. Build step `sleep 10`. Create freestyle project C. Throttle on my-category. Build step `sleep 10`. 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. |
New:
*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 5`. Create freestyle project B. Throttle on my-category. Build step `sleep 10`. Create freestyle project C. Throttle on my-category. Build step `sleep 10`. 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. |
Description |
Original:
*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 5`. Create freestyle project B. Throttle on my-category. Build step `sleep 10`. Create freestyle project C. Throttle on my-category. Build step `sleep 10`. 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. |
New:
*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 5`. Create freestyle project B. Throttle on my-category. Build step `sleep 10`. Create freestyle project C. Throttle on my-category. Build step `sleep 10`. 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. |
Priority | Original: Minor [ 4 ] | New: Major [ 3 ] |
Description |
Original:
*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 5`. Create freestyle project B. Throttle on my-category. Build step `sleep 10`. Create freestyle project C. Throttle on my-category. Build step `sleep 10`. 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. |
New:
*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 5`. Create freestyle project B. Throttle on my-category. Build step `sleep 10`. Create freestyle project C. Throttle on my-category. Build step `sleep 10`. 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. |
Description |
Original:
*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 5`. Create freestyle project B. Throttle on my-category. Build step `sleep 10`. Create freestyle project C. Throttle on my-category. Build step `sleep 10`. 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. |
New:
*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 5`. 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. |
Description |
Original:
*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 5`. 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. |
New:
*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. |
Component/s | Original: lockable-resources-plugin [ 18222 ] |
Link |
New:
This issue is related to |