-
Bug
-
Resolution: Cannot Reproduce
-
Minor
-
None
-
Jenkins Version: 2.44
Pipeline Groovy: 2.36
Blue Ocean: 1.1.2
-
-
Blue Ocean - Candidates
When executing a Pipeline script with a long-running loop that uses nested closures, a StackOverflowError occurs and the job aborts abruptly.
Reproduction steps:
- Create a Pipeline job with this as the script:
def finished = false def someMap = ['foo':'bar', 'baz':'spam'] def someOtherMap = ['foo':'baz', 'baz':'bar'] node { def incr = 0 while (true) { someMap.each{ foo, bar -> sh "echo ${foo} ${bar} ${incr}" incr++ someOtherMap.each{ baz, spam -> sh "echo ${baz} ${spam} ${incr}" } } } }
- Run the job
- Wait for about an hour. For me, the loop executes nearly 4000 times before the error. Maybe easier to reproduce on a smaller stack.
Attached is the (not-very-interesting) resultant stack trace.
- is related to
-
JENKINS-51057 EventDispatcher and ConcurrentLinkedQueue ate my JVM
-
- Closed
-
[JENKINS-45488] Pipeline: StackOverflowError at io.jenkins.blueocean.events.PipelineEventListener$StageEventPublisher.getParentBlock(PipelineEventListener.java:110)
Component/s | New: blueocean-plugin [ 21481 ] | |
Component/s | Original: pipeline [ 21692 ] |
Epic Link | New: JENKINS-43953 [ 181485 ] |
Sprint | New: Blue Ocean 1.3 [ 296 ] |
Environment |
Original:
Jenkins Version: 2.44 Pipeline Groovy: 2.36 |
New:
Jenkins Version: 2.44 Pipeline Groovy: 2.36 Blue Ocean: 1.1.2 |
Sprint | Original: Blue Ocean 1.3-beta-2 [ 296 ] | New: Blue Ocean 1.4 [ 311 ] |
Rank | New: Ranked higher |
Sprint | Original: Blue Ocean 1.4 [ 311 ] | New: Blue Ocean 1.3 - candidates [ 326 ] |
Rank | New: Ranked lower |
Assignee | New: Vivek Pandey [ vivek ] |
Sprint | Original: Blue Ocean 1.4 - candidates [ 326 ] | New: Blue Ocean 1.4 - beta 2 [ 416 ] |
Rank | New: Ranked higher |