Seems that there is a concurrency issue in queue handlers.
The issue sometimes appears in jenkins-1.509.4 .
java.lang.IndexOutOfBoundsException: Index: 62, Size: 62
at java.util.ArrayList.rangeCheck(ArrayList.java:635)
at java.util.ArrayList.get(ArrayList.java:411)
at hudson.model.queue.MappingWorksheet$ReadOnlyList.get(MappingWorksheet.java:102)
at hudson.model.queue.MappingWorksheet$ExecutorChunk.execute(MappingWorksheet.java:150)
at hudson.model.queue.MappingWorksheet$ExecutorChunk.access$000(MappingWorksheet.java:110)
at hudson.model.queue.MappingWorksheet$Mapping.execute(MappingWorksheet.java:298)
at hudson.model.Queue.maintain(Queue.java:1048)
at hudson.model.Queue.pop(Queue.java:866)
at hudson.model.Executor.grabJob(Executor.java:285)
at hudson.model.Executor.run(Executor.java:206)
- is duplicated by
-
JENKINS-19799 IndexOutOfBoundsException from MappingWorksheet$ReadOnlyList.get in executor threads
-
- Resolved
-
Unfortunately, I still have to care about it.
The last valuable change in hudson.model.queue.MappingWorksheet was in 1.520, but the most of code (including referenced classes) have not been changed since 2011. I suppose the issue is still active
https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/model/queue/MappingWorksheet.java
BTW, it makes sense to somehow reproduce it in unit tests