-
Bug
-
Resolution: Fixed
-
Major
-
None
-
Jenkins 1.565.1
ArtifactDeployer 0.31
After upgrading to Jenkins 1.565.1 my setup apparently loaded just fine. I then upgraded the ArtifactDeployer to version 0.31 and restarted. The web interface was stuck for quite a long time because artifact deployer register a migration process that ends up loading all projects history.
Thread dump:
"Jenkins initialization thread" prio=5 RUNNABLE
java.io.FileInputStream.readBytes(Native Method)
java.io.FileInputStream.read(FileInputStream.java:239)
java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
java.io.BufferedInputStream.read(BufferedInputStream.java:254)
java.io.FilterInputStream.read(FilterInputStream.java:83)
java.io.PushbackInputStream.read(PushbackInputStream.java:139)
com.thoughtworks.xstream.core.util.XmlHeaderAwareReader.getHeader(XmlHeaderAwareReader.java:79)
com.thoughtworks.xstream.core.util.XmlHeaderAwareReader.<init>(XmlHeaderAwareReader.java:61)
com.thoughtworks.xstream.io.xml.AbstractXppDriver.createReader(AbstractXppDriver.java:65)
hudson.XmlFile.unmarshal(XmlFile.java:163)
hudson.model.Run.reload(Run.java:321)
hudson.model.Run.<init>(Run.java:309)
hudson.model.AbstractBuild.<init>(AbstractBuild.java:173)
hudson.model.Build.<init>(Build.java:102)
hudson.model.FreeStyleBuild.<init>(FreeStyleBuild.java:38)
sun.reflect.GeneratedConstructorAccessor67.newInstance(Unknown Source)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
java.lang.reflect.Constructor.newInstance(Constructor.java:534)
jenkins.model.lazy.LazyBuildMixIn.loadBuild(LazyBuildMixIn.java:153)
jenkins.model.lazy.LazyBuildMixIn$1.create(LazyBuildMixIn.java:134)
hudson.model.RunMap.retrieve(RunMap.java:218)
hudson.model.RunMap.retrieve(RunMap.java:56)
jenkins.model.lazy.AbstractLazyLoadRunMap.load(AbstractLazyLoadRunMap.java:687)
jenkins.model.lazy.AbstractLazyLoadRunMap.load(AbstractLazyLoadRunMap.java:670)
jenkins.model.lazy.AbstractLazyLoadRunMap.all(AbstractLazyLoadRunMap.java:622)
jenkins.model.lazy.AbstractLazyLoadRunMap.entrySet(AbstractLazyLoadRunMap.java:277)
java.util.AbstractMap$2$1.<init>(AbstractMap.java:378)
java.util.AbstractMap$2.iterator(AbstractMap.java:377)
hudson.util.RunList.iterator(RunList.java:97)
org.jenkinsci.plugins.artifactdeployer.migration.DeployedArtifactsMigrationItemListener.onLoaded(DeployedArtifactsMigrationItemListener.java:29)
jenkins.model.Jenkins.<init>(Jenkins.java:863)
hudson.model.Hudson.<init>(Hudson.java:82)
hudson.model.Hudson.<init>(Hudson.java:78)
hudson.WebAppMain$3.run(WebAppMain.java:222)
Once finished, I eventually had access to the web interface. On the next restart, the Jenkins initialization was stuck again with the same thread dump. Seems the migration occurs over and over on every initialization.
Things to check:
- should handle the migration after the initialization to avoid blocking the web interface
- should not lazy load all projects and builds
- I guess the migration should occur only once.