-
Bug
-
Resolution: Unresolved
-
Critical
-
None
Hello,
I use Jenkins with parallel builds to checkout many packages.
Example:
parallel (
build(build("CheckOut-Package", PACKAGE_NAME: "Package1");
build(build("CheckOut-Package", PACKAGE_NAME: "Package2");
...
build(build("CheckOut-Package", PACKAGE_NAME: "Package10");
)
Each of these jobs calls the log rotator when finished.
Some time, next log appears:
SEVERE: Executor threw an exception
java.util.NoSuchElementException
at jenkins.model.lazy.LazyLoadRunMapEntrySet$1.next(LazyLoadRunMapEntrySet.java:76)
at jenkins.model.lazy.LazyLoadRunMapEntrySet$1.next(LazyLoadRunMapEntrySet.java:63)
at java.util.AbstractMap$2$1.next(AbstractMap.java:385)
at hudson.util.RunList.subList(RunList.java:139)
at hudson.tasks.LogRotator.perform(LogRotator.java:125)
at hudson.model.Job.logRotate(Job.java:467)
at hudson.model.Run.execute(Run.java:1808)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:374)
In this case, Jenkins does not detect that the job is finished even if it is indeed finished, and stay stucked.
Since log Rotator should not be a blocking task, I added an exception catch in this PR:
https://github.com/jenkinsci/jenkins/pull/1790
That was enough on my side to handle this very recurrent problem.