I created two seperate pipeline jobs to test this with.
Got the same behaviour.

*pipeline-test1*















*def stepsForParallel = [:]stepsForParallel["nodeName4"] = 
transformIntoStep("nodeName4")parallel stepsForParalleldef 
transformIntoStep(nodeName) {    return {        node("master") {          
  lock(label: "testing-repository") {                println "Testing lock 
label"                sleep 60            }        }    }}*
OUTPUT

*[Pipeline] parallel[Pipeline] [nodeName4] { (Branch: nodeName4)[Pipeline] 
[nodeName4] node[nodeName4] Running on Jenkins in 
/var/lib/jenkins/workspace/pipeline-test[Pipeline] [nodeName4] {[Pipeline] 
[nodeName4] lock[nodeName4] Trying to acquire lock on [Label: 
testing-repository][nodeName4] Lock acquired on [Label: 
testing-repository][Pipeline] [nodeName4] {[Pipeline] [nodeName4] 
echo[nodeName4] Testing lock label[Pipeline] [nodeName4] sleep[nodeName4] 
Sleeping for 1 min 0 sec[Pipeline] [nodeName4] }[nodeName4] Lock released 
on resource [Label: testing-repository][Pipeline] [nodeName4] // 
lock[Pipeline] [nodeName4] }[Pipeline] [nodeName4] // node[Pipeline] 
[nodeName4] }[Pipeline] // parallel[Pipeline] End of PipelineFinished: 
SUCCESS*

*pipeline-test2*
def stepsForParallel = [:]
stepsForParallel["nodeName1"] = transformIntoStep("nodeName1")
stepsForParallel["nodeName2"] = transformIntoStep("nodeName2")
stepsForParallel["nodeName3"] = transformIntoStep("nodeName3")

parallel stepsForParallel

def transformIntoStep(nodeName) {
    return {
        node("master") {
            if (nodeName.equals("nodeName1")) {
                lock(resource: 'testing1-repository') {
                    println "Testing lock resource"
                    sleep 30
                }   
            }
                
            if (nodeName.equals("nodeName2")) {
                lock(resource: 'testing2-repository') {
                    println "Testing lock resource"
                    sleep 30
                }   
            }
                
            if (nodeName.equals("nodeName3")) {
                lock(resource: 'testing3-repository') {
                    println "Testing lock resource"
                    sleep 30
                }   
            }
        }
    }
}

*OUTPUT*

*[Pipeline] parallel[Pipeline] [nodeName1] { (Branch: nodeName1)[Pipeline] 
[nodeName2] { (Branch: nodeName2)[Pipeline] [nodeName3] { (Branch: 
nodeName3)[Pipeline] [nodeName1] node[nodeName1] Running on Jenkins in 
/var/lib/jenkins/workspace/pipeline-test3[Pipeline] [nodeName2] 
node[Pipeline] [nodeName3] node[nodeName2] Running on Jenkins in 
/var/lib/jenkins/workspace/pipeline-test3@2[nodeName3] Running on Jenkins 
in /var/lib/jenkins/workspace/pipeline-test3@3[Pipeline] [nodeName1] 
{[Pipeline] [nodeName2] {[Pipeline] [nodeName3] {[Pipeline] [nodeName1] 
lock[nodeName1] Trying to acquire lock on [testing1-repository][nodeName1] 
Found 0 available resource(s). Waiting for correct amount: 1.[nodeName1] 
[testing1-repository] is locked, waiting...[Pipeline] [nodeName2] 
lock[nodeName2] Trying to acquire lock on [testing2-repository][nodeName2] 
Found 0 available resource(s). Waiting for correct amount: 1.[nodeName2] 
[testing2-repository] is locked, waiting...[Pipeline] [nodeName3] 
lock[nodeName3] Trying to acquire lock on [testing3-repository][nodeName3] 
Found 0 available resource(s). Waiting for correct amount: 1.[nodeName3] 
[testing3-repository] is locked, waiting...[nodeName1] Lock acquired on 
[testing1-repository][Pipeline] [nodeName1] {[Pipeline] [nodeName1] 
echo[nodeName1] Testing lock resource[Pipeline] [nodeName1] 
sleep[nodeName1] Sleeping for 30 sec[Pipeline] [nodeName1] }[nodeName1] 
Lock released on resource [testing1-repository][Pipeline] [nodeName1] // 
lock[Pipeline] [nodeName1] }[Pipeline] [nodeName1] // node[Pipeline] 
[nodeName1] }Aborted by Sverre Moe[Pipeline] [nodeName3] // lock[Pipeline] 
[nodeName2] // lock[Pipeline] [nodeName2] }[Pipeline] [nodeName3] 
}[Pipeline] [nodeName2] // node[Pipeline] [nodeName3] // node[Pipeline] 
[nodeName2] }[nodeName2] Failed in branch nodeName2[Pipeline] [nodeName3] 
}[nodeName3] Failed in branch nodeName3[Pipeline] // parallel[Pipeline] End 
of PipelineException: 
nullorg.jenkinsci.plugins.workflow.steps.FlowInterruptedException at 
org.jenkinsci.plugins.workflow.cps.CpsBodyExecution.cancel(CpsBodyExecution.java:245)
 
at 
org.jenkinsci.plugins.workflow.steps.BodyExecution.cancel(BodyExecution.java:76)
 
at 
org.jenkinsci.plugins.workflow.cps.steps.ParallelStepExecution.stop(ParallelStepExecution.java:67)
 
at org.jenkinsci.plugins.workflow.cps.CpsThread.stop(CpsThread.java:296) at 
org.jenkinsci.plugins.workflow.cps.CpsFlowExecution$6.onSuccess(CpsFlowExecution.java:1083)
 
at 
org.jenkinsci.plugins.workflow.cps.CpsFlowExecution$6.onSuccess(CpsFlowExecution.java:1072)
 
at 
org.jenkinsci.plugins.workflow.cps.CpsFlowExecution$4$1.run(CpsFlowExecution.java:861)
 
at 
org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:35)
 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
at java.util.concurrent.FutureTask.run(FutureTask.java:266) at 
hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:131)
 
at 
jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
at java.util.concurrent.FutureTask.run(FutureTask.java:266) at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745)Finished: ABORTED*
I had to abort this build because it had stalled.

All resources where free, but two of the parallell executions never started.
Resources
testing1-repository FREE
testing2-repository FREE
testing3-repository FREE
Labels
testing-repository 3 free resources

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/a1090e44-2fcf-4546-aa75-607b07604221%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to