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 jenkinsci-users+unsubscr...@googlegroups.com.
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