Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-52249

Parallel build led to AIOOBE in Plot.savePlotData

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • plot-plugin
    • None
    • The latest and greatest:
      * Jenkins (core) 2.129
      * Plot Plugin 2.1.0

      2 parallel builds (scripted pipeline) executed the "same" plot step at very, very much the same time (as far as I can tell it was seemingly definitely at least the same second, but of course it must have been really the very, very same time) leading to one of the two builds failing with:

      java.lang.ArrayIndexOutOfBoundsException: 2
          at hudson.plugins.plot.Plot.savePlotData(Plot.java:967)
          at hudson.plugins.plot.Plot.addBuild(Plot.java:717)
          at hudson.plugins.plot.PlotBuilder.perform(PlotBuilder.java:223)
          at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:80)
          at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:67)
          at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution$1$1.call(SynchronousNonBlockingStepExecution.java:50)
          at hudson.security.ACL.impersonate(ACL.java:290)
          at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution$1.run(SynchronousNonBlockingStepExecution.java:47)
          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:1149)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
          at java.lang.Thread.run(Thread.java:748)
      
      • ... whereas the other one was successful
      • Presumably the plot CSV file in the pipeline job folder was corrupted by that, because the next build (not in parallel anymore) failed with the same symptom.
      • But must have kind of fixed the corrupt plot CSV file in the pipeline job folder. But in a rather forceful way...
      • Because subsequent builds (also not in parallel anymore) then succeeded.

      Sad side effects:

      • Please note:
        • there are in fact 4 consecutive plot step calls
        • seemingly the 3rd one collided
      • The "interesting"/sad result is:
        • in the plot CSV files of the plot step calls #1 and #2 "only" the values/entries/lines of the successful build are missing
        • in the plot CSV file of the colliding plot step call #3 there is a huge gap of values/entries/lines: in fact the bulk of the history is lost and the remaining file has less than 10% of the size it had before
        • in the plot CSV file of the plot step call #4 (which was skipped due to the failures) the values/entries/lines of the two failing builds are missing; which makes of course sense

            vgaidarji Veaceslav Gaidarji
            reinholdfuereder Reinhold Füreder
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: