-
Bug
-
Resolution: Unresolved
-
Critical
ci.jenkins.io froze, and danielbeck found that hundreds of threads were blocked in
"Handling GET /blue/rest/organizations/jenkins/computers/ from ... : ..." #... prio=5 os_prio=0 cpu=9992.49ms elapsed=2517.82s tid=... nid=... waiting for monitor entry [...] java.lang.Thread.State: BLOCKED (on object monitor) at jenkins.model.lazy.AbstractLazyLoadRunMap.getByNumber(AbstractLazyLoadRunMap.java:370) - waiting to lock <...> (a hudson.model.RunMap) at jenkins.model.lazy.LazyBuildMixIn.getBuildByNumber(LazyBuildMixIn.java:228) at org.jenkinsci.plugins.workflow.job.WorkflowJob.getBuildByNumber(WorkflowJob.java:232) at io.jenkins.blueocean.rest.impl.pipeline.PipelineRunImpl.getCommitUrl(PipelineRunImpl.java:197) at java.lang.invoke.DirectMethodHandle$Holder.invokeVirtual(java.base@11.0.4/DirectMethodHandle$Holder) at java.lang.invoke.LambdaForm$MH/....invoke(java.base@11.0.4/LambdaForm$MH) at java.lang.invoke.LambdaForm$MH/....invoke_MT(java.base@11.0.4/LambdaForm$MH) at io.jenkins.blueocean.commons.stapler.export.MethodProperty.getValue(MethodProperty.java:72) at io.jenkins.blueocean.commons.stapler.export.ExportInterceptor$1.getValue(ExportInterceptor.java:46) at io.jenkins.blueocean.commons.stapler.Export$BlueOceanExportInterceptor.getValue(Export.java:196) at io.jenkins.blueocean.commons.stapler.export.Property.writeTo(Property.java:136) at io.jenkins.blueocean.commons.stapler.export.Model.writeNestedObjectTo(Model.java:228) at io.jenkins.blueocean.commons.stapler.export.Property.writeValue(Property.java:303) at io.jenkins.blueocean.commons.stapler.export.Property.writeValue(Property.java:169) at io.jenkins.blueocean.commons.stapler.export.Property.writeTo(Property.java:154) at io.jenkins.blueocean.commons.stapler.export.Model.writeNestedObjectTo(Model.java:228) at io.jenkins.blueocean.commons.stapler.export.Property.writeValue(Property.java:303) at io.jenkins.blueocean.commons.stapler.export.Property.writeBuffered(Property.java:175) at io.jenkins.blueocean.commons.stapler.export.Property.writeValue(Property.java:235) at io.jenkins.blueocean.commons.stapler.export.Property.writeValue(Property.java:169) at io.jenkins.blueocean.commons.stapler.export.Property.writeTo(Property.java:154) at io.jenkins.blueocean.commons.stapler.export.Model.writeNestedObjectTo(Model.java:228) at io.jenkins.blueocean.commons.stapler.export.Property.writeValue(Property.java:303) at io.jenkins.blueocean.commons.stapler.export.Property.writeBuffered(Property.java:175) at io.jenkins.blueocean.commons.stapler.export.Property.writeValue(Property.java:219) at io.jenkins.blueocean.commons.stapler.export.Property.writeValue(Property.java:169) at io.jenkins.blueocean.commons.stapler.export.Property.writeTo(Property.java:154) at io.jenkins.blueocean.commons.stapler.export.Model.writeNestedObjectTo(Model.java:228) at io.jenkins.blueocean.commons.stapler.export.Model.writeTo(Model.java:199) at io.jenkins.blueocean.commons.stapler.Export.writeOne(Export.java:177) at io.jenkins.blueocean.commons.stapler.Export.serveExposedBean(Export.java:168) at io.jenkins.blueocean.commons.stapler.Export.doJson(Export.java:108) at io.jenkins.blueocean.commons.stapler.TreeResponse$Processor$1.generateResponse(TreeResponse.java:48) at ...
Looking at the code, this seems like a classic lazy-loading violation: looping over possibly every historical build of a job, each load of which involves expensive disk I/O. Under no circumstances may a plugin do this.
This seems to have been noted in JENKINS-56773 but the response was just to disable the blueocean-executor-info plugin. How are users who already have this plugin installed supposed to know this? Some throttling was added, but evidently not enough.
- is caused by
-
JENKINS-45011 Commit has in run result header is not clickable
- Closed
- relates to
-
JENKINS-56773 High master CPU usage introduced by Blue Ocean 1.14.0
- Closed
- links to