It has been observed that customers may run into a Timeout situation caused by a Resource Constraint, this is occurring on Pipelines with multiple stages executing simultaneously with Resource Constraints and perhaps a Barrier being used to gate the deployment.
Customer Setup Example
The above screenshots are a simplification, there are 2 stages in parallel where a migration occurs followed by a deployment for a specific environment. Note that the Service, Environment, Infrastructure (Harness Entities) are shared in this deployment.
Why does this happen?
Stage S1 acquires the Resource Constraint Lock and starts the execution. Stage S2 (using the same Harness Entities) is now waiting for the lock to be released.
Now, there are barriers in both stages. So S1 is waiting for S2 to reach the barrier but S2 never starts in the first place
So, this creates a deadlock, and eventually the execution times out.
What is the correct setup to prevent this behavior?
The initial problem statement is caused by a desire to achieve a migration followed by a deployment. So based on that criteria, the correct configuration of the stage would be to utilize a Barrier rather than a Resource Constraint.
Removing a Resource Constraint can be achieved by simply ticking the check box in the Infra Tab on the UI “Allow simultaneous Deployments”.