-
Bug
-
Resolution: Fixed
-
Blocker
-
None
-
Powered by SuggestiMate
There probably possible cycle call of rebuildDependencyGraph(),
Ivy calls
Hudson.getInstance().rebuildDependencyGraph();
which starts following cycle:
getModuleDescriptor() -> recomputeModuleDescriptor() -> setModuleDescriptor() -> hudson.model.Hudson.rebuildDependencyGraph()
which results into StackOverflowError, for whole exception, see
http://groups.google.com/group/jenkinsci-users/browse_thread/thread/3c6b67b448c98379#
[JENKINS-10025] Calling rebuildDependencyGraph() in cycle
SEVERE: Failed Finalizing set up java.lang.StackOverflowError at java.io.UnixFileSystem.canonicalize0(Native Method) at java.io.UnixFileSystem.canonicalize(UnixFileSystem.java:157) at java.io.File.getCanonicalPath(File.java:559) at sun.security.provider.PolicyFile.canonPath(PolicyFile.java:1849) at java.io.FilePermission$1.run(FilePermission.java:186) at java.io.FilePermission$1.run(FilePermission.java:183) at java.security.AccessController.doPrivileged(Native Method) at java.io.FilePermission.init(FilePermission.java:183) at java.io.FilePermission.<init>(FilePermission.java:249) at sun.net.www.protocol.file.FileURLConnection.getPermission(FileURLConnection.java:198) at sun.net.www.protocol.jar.JarFileFactory.getPermission(JarFileFactory.java:125) at sun.net.www.protocol.jar.JarFileFactory.getCachedJarFile(JarFileFactory.java:95) at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:52) at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:104) at sun.net.www.protocol.jar.JarURLConnection.getInputStream(JarURLConnection.java:132) at org.apache.ivy.util.url.BasicURLHandler.openStream(BasicURLHandler.java:129) at org.apache.ivy.util.XMLHelper.parse(XMLHelper.java:118) at org.apache.ivy.util.XMLHelper.parse(XMLHelper.java:96) at org.apache.ivy.util.XMLHelper.parse(XMLHelper.java:86) at org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser$Parser.parse(XmlModuleDescriptorParser.java:238) at org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser.parseDescriptor(XmlModuleDescriptorParser.java:102) at org.apache.ivy.plugins.parser.ModuleDescriptorParserRegistry.parseDescriptor(ModuleDescriptorParserRegistry.java:86) at org.apache.ivy.plugins.parser.AbstractModuleDescriptorParser.parseDescriptor(AbstractModuleDescriptorParser.java:48) at hudson.ivy.IvyBuildTrigger$1.doInIvyContext(IvyBuildTrigger.java:380) at org.apache.ivy.Ivy.execute(Ivy.java:358) at hudson.ivy.IvyBuildTrigger.recomputeModuleDescriptor(IvyBuildTrigger.java:377) at hudson.ivy.IvyBuildTrigger.getModuleDescriptor(IvyBuildTrigger.java:264) at hudson.ivy.IvyBuildTrigger.buildDependencyGraph(IvyBuildTrigger.java:449) at hudson.util.DescribableList.buildDependencyGraph(DescribableList.java:195) at hudson.model.Project.buildDependencyGraph(Project.java:169) at hudson.model.DependencyGraph.<init>(DependencyGraph.java:89) at hudson.model.Hudson.rebuildDependencyGraph(Hudson.java:3503) at hudson.ivy.IvyBuildTrigger.setModuleDescriptor(IvyBuildTrigger.java:410) at hudson.ivy.IvyBuildTrigger.recomputeModuleDescriptor(IvyBuildTrigger.java:377) at hudson.ivy.IvyBuildTrigger.getModuleDescriptor(IvyBuildTrigger.java:264) at hudson.ivy.IvyBuildTrigger.buildDependencyGraph(IvyBuildTrigger.java:449) at hudson.util.DescribableList.buildDependencyGraph(DescribableList.java:195) at hudson.model.Project.buildDependencyGraph(Project.java:169) at hudson.model.DependencyGraph.<init>(DependencyGraph.java:89) at hudson.model.Hudson.rebuildDependencyGraph(Hudson.java:3503) at hudson.ivy.IvyBuildTrigger.setModuleDescriptor(IvyBuildTrigger.java:410) at hudson.ivy.IvyBuildTrigger.recomputeModuleDescriptor(IvyBuildTrigger.java:377) at hudson.ivy.IvyBuildTrigger.getModuleDescriptor(IvyBuildTrigger.java:264) at hudson.ivy.IvyBuildTrigger.buildDependencyGraph(IvyBuildTrigger.java:449) at hudson.util.DescribableList.buildDependencyGraph(DescribableList.java:195) at hudson.model.Project.buildDependencyGraph(Project.java:169) at hudson.model.DependencyGraph.<init>(DependencyGraph.java:89) at hudson.model.Hudson.rebuildDependencyGraph(Hudson.java:3503) at hudson.ivy.IvyBuildTrigger.setModuleDescriptor(IvyBuildTrigger.java:410) at hudson.ivy.IvyBuildTrigger.recomputeModuleDescriptor(IvyBuildTrigger.java:377) at hudson.ivy.IvyBuildTrigger.getModuleDescriptor(IvyBuildTrigger.java:264) at hudson.ivy.IvyBuildTrigger.buildDependencyGraph(IvyBuildTrigger.java:449) at hudson.util.DescribableList.buildDependencyGraph(DescribableList.java:195) at hudson.model.Project.buildDependencyGraph(Project.java:169) at hudson.model.DependencyGraph.<init>(DependencyGraph.java:89) at hudson.model.Hudson.rebuildDependencyGraph(Hudson.java:3503) at hudson.ivy.IvyBuildTrigger.setModuleDescriptor(IvyBuildTrigger.java:410) at hudson.ivy.IvyBuildTrigger.recomputeModuleDescriptor(IvyBuildTrigger.java:377) at hudson.ivy.IvyBuildTrigger.getModuleDescriptor(IvyBuildTrigger.java:264) at hudson.ivy.IvyBuildTrigger.buildDependencyGraph(IvyBuildTrigger.java:449) at hudson.util.DescribableList.buildDependencyGraph(DescribableList.java:195) at hudson.model.Project.buildDependencyGraph(Project.java:169) at hudson.model.DependencyGraph.<init>(DependencyGraph.java:89) at hudson.model.Hudson.rebuildDependencyGraph(Hudson.java:3503) at hudson.ivy.IvyBuildTrigger.setModuleDescriptor(IvyBuildTrigger.java:410) at hudson.ivy.IvyBuildTrigger.recomputeModuleDescriptor(IvyBuildTrigger.java:377) at hudson.ivy.IvyBuildTrigger.getModuleDescriptor(IvyBuildTrigger.java:264) at hudson.ivy.IvyBuildTrigger.buildDependencyGraph(IvyBuildTrigger.java:449) at hudson.util.DescribableList.buildDependencyGraph(DescribableList.java:195) at hudson.model.Project.buildDependencyGraph(Project.java:169) at hudson.model.DependencyGraph.<init>(DependencyGraph.java:89) at hudson.model.Hudson.rebuildDependencyGraph(Hudson.java:3503) at hudson.ivy.IvyBuildTrigger.setModuleDescriptor(IvyBuildTrigger.java:410) at hudson.ivy.IvyBuildTrigger.recomputeModuleDescriptor(IvyBuildTrigger.java:377) at hudson.ivy.IvyBuildTrigger.getModuleDescriptor(IvyBuildTrigger.java:264) at hudson.ivy.IvyBuildTrigger.buildDependencyGraph(IvyBuildTrigger.java:449) at hudson.util.DescribableList.buildDependencyGraph(DescribableList.java:195) at hudson.model.Project.buildDependencyGraph(Project.java:169) at hudson.model.DependencyGraph.<init>(DependencyGraph.java:89) at hudson.model.Hudson.rebuildDependencyGraph(Hudson.java:3503) at hudson.ivy.IvyBuildTrigger.setModuleDescriptor(IvyBuildTrigger.java:410) at hudson.ivy.IvyBuildTrigger.recomputeModuleDescriptor(IvyBuildTrigger.java:377) at hudson.ivy.IvyBuildTrigger.getModuleDescriptor(IvyBuildTrigger.java:264) at hudson.ivy.IvyBuildTrigger.buildDependencyGraph(IvyBuildTrigger.java:449) at hudson.util.DescribableList.buildDependencyGraph(DescribableList.java:195) at hudson.model.Project.buildDependencyGraph(Project.java:169) at hudson.model.DependencyGraph.<init>(DependencyGraph.java:89) at hudson.model.Hudson.rebuildDependencyGraph(Hudson.java:3503) at hudson.ivy.IvyBuildTrigger.setModuleDescriptor(IvyBuildTrigger.java:410) at hudson.ivy.IvyBuildTrigger.recomputeModuleDescriptor(IvyBuildTrigger.java:377) at hudson.ivy.IvyBuildTrigger.getModuleDescriptor(IvyBuildTrigger.java:264) at hudson.ivy.IvyBuildTrigger.buildDependencyGraph(IvyBuildTrigger.java:449) at hudson.util.DescribableList.buildDependencyGraph(DescribableList.java:195) at hudson.model.Project.buildDependencyGraph(Project.java:169) at hudson.model.DependencyGraph.<init>(DependencyGraph.java:89) at hudson.model.Hudson.rebuildDependencyGraph(Hudson.java:3503) at hudson.ivy.IvyBuildTrigger.setModuleDescriptor(IvyBuildTrigger.java:410) at hudson.ivy.IvyBuildTrigger.recomputeModuleDescriptor(IvyBuildTrigger.java:377) at hudson.ivy.IvyBuildTrigger.getModuleDescriptor(IvyBuildTrigger.java:264) at hudson.ivy.IvyBuildTrigger.buildDependencyGraph(IvyBuildTrigger.java:449) at hudson.util.DescribableList.buildDependencyGraph(DescribableList.java:195) at hudson.model.Project.buildDependencyGraph(Project.java:169) at hudson.model.DependencyGraph.<init>(DependencyGraph.java:89) at hudson.model.Hudson.rebuildDependencyGraph(Hudson.java:3503) at hudson.ivy.IvyBuildTrigger.setModuleDescriptor(IvyBuildTrigger.java:410) at hudson.ivy.IvyBuildTrigger.recomputeModuleDescriptor(IvyBuildTrigger.java:377) at hudson.ivy.IvyBuildTrigger.getModuleDescriptor(IvyBuildTrigger.java:264) at hudson.ivy.IvyBuildTrigger.buildDependencyGraph(IvyBuildTrigger.java:449) at hudson.util.DescribableList.buildDependencyGraph(DescribableList.java:195) at hudson.model.Project.buildDependencyGraph(Project.java:169) at hudson.model.DependencyGraph.<init>(DependencyGraph.java:89) at hudson.model.Hudson.rebuildDependencyGraph(Hudson.java:3503) at hudson.ivy.IvyBuildTrigger.setModuleDescriptor(IvyBuildTrigger.java:410) at hudson.ivy.IvyBuildTrigger.recomputeModuleDescriptor(IvyBuildTrigger.java:377) at hudson.ivy.IvyBuildTrigger.getModuleDescriptor(IvyBuildTrigger.java:264) at hudson.ivy.IvyBuildTrigger.buildDependencyGraph(IvyBuildTrigger.java:449) at hudson.util.DescribableList.buildDependencyGraph(DescribableList.java:195) at hudson.model.Project.buildDependencyGraph(Project.java:169) at hudson.model.DependencyGraph.<init>(DependencyGraph.java:89) at hudson.model.Hudson.rebuildDependencyGraph(Hudson.java:3503) at hudson.ivy.IvyBuildTrigger.setModuleDescriptor(IvyBuildTrigger.java:410) at hudson.ivy.IvyBuildTrigger.recomputeModuleDescriptor(IvyBuildTrigger.java:377) at hudson.ivy.IvyBuildTrigger.getModuleDescriptor(IvyBuildTrigger.java:264) at hudson.ivy.IvyBuildTrigger.buildDependencyGraph(IvyBuildTrigger.java:449) at hudson.util.DescribableList.buildDependencyGraph(DescribableList.java:195) at hudson.model.Project.buildDependencyGraph(Project.java:169) at hudson.model.DependencyGraph.<init>(DependencyGraph.java:89) at hudson.model.Hudson.rebuildDependencyGraph(Hudson.java:3503) at hudson.ivy.IvyBuildTrigger.setModuleDescriptor(IvyBuildTrigger.java:410) at hudson.ivy.IvyBuildTrigger.recomputeModuleDescriptor(IvyBuildTrigger.java:377) at hudson.ivy.IvyBuildTrigger.getModuleDescriptor(IvyBuildTrigger.java:264) at hudson.ivy.IvyBuildTrigger.buildDependencyGraph(IvyBuildTrigger.java:449) at hudson.util.DescribableList.buildDependencyGraph(DescribableList.java:195) at hudson.model.Project.buildDependencyGraph(Project.java:169) at hudson.model.DependencyGraph.<init>(DependencyGraph.java:89) at hudson.model.Hudson.rebuildDependencyGraph(Hudson.java:3503) at hudson.ivy.IvyBuildTrigger.setModuleDescriptor(IvyBuildTrigger.java:410) at hudson.ivy.IvyBuildTrigger.recomputeModuleDescriptor(IvyBuildTrigger.java:377) at hudson.ivy.IvyBuildTrigger.getModuleDescriptor(IvyBuildTrigger.java:264) at hudson.ivy.IvyBuildTrigger.buildDependencyGraph(IvyBuildTrigger.java:449) at hudson.util.DescribableList.buildDependencyGraph(DescribableList.java:195) at hudson.model.Project.buildDependencyGraph(Project.java:169) at hudson.model.DependencyGraph.<init>(DependencyGraph.java:89) at hudson.model.Hudson.rebuildDependencyGraph(Hudson.java:3503)
The preceding is a portion of the stacktrace referred to by eguess74.
For what it is worth, I find the code at line 375 though 377 of IvyBuildTrigger
a bit suspicious, as the "if" has an "or" condition but even if only the first
half of that test is true (i.e., moduleDescription == null, but lastmodified >= fivyF.lastModified()),
the next line still sets lastmodified = fivyF.lastModified(),
Perhaps that is the source of the loop?
It has become critical as the workaround doesn't work anymore. Jenkins 1.460 same error
Andrew,
I took freedom to reassign it to you hoping that you know somebody who could take a look at the problem described, as it seems that Timothy having no time to deal with it.
Thanks in advance!
Hey guys,
apologies for not responding sooner. I'm afraid my time to work on this project these days is pretty much nonexistent. Gregory Boissinot has taken over general maintenance (gboissinot).
This particular issue is in the old Ivy trigger code as well, which is from before I took over the project a number of years ago. All my effort was focused on creating and maintaining the Ivy project type. I'm not sure how many people are using the trigger vs the project type, but the trigger hasn't been actively maintained for a fair while. That said, it may well be quite a simple fix to resolve this issue, but I'm afraid I'm not going to have time to look into it.
-Timo
Code changed in jenkins
User: Nicolas De Loof
Path:
src/main/java/hudson/ivy/IvyBuildTrigger.java
http://jenkins-ci.org/commit/ivy-plugin/6d2408bd3ad92683176908c75d51f3474e69bed2
Log:
JENKINS-10025 break cycle computing dependencygraph
Code changed in jenkins
User: Johno Crawford
Path:
src/main/java/hudson/ivy/IvyBuildTrigger.java
http://jenkins-ci.org/commit/ivy-plugin/54901085f206d0890f59d8b880744e9c3216180c
Log:
Merge pull request #6 from ndeloof/master
Compare: https://github.com/jenkinsci/ivy-plugin/compare/ce005a0da58c...54901085f206
I have discovered a workaround that works 100% of times. I hope this will help to nail the issue:
1. I'm 100% positive that currently when I'm starting Jenkins i'm going to have StackOverflow error, so i go to jobs folder and using a script i disable all the jobs
2. I'm starting up the server and there is no error
3. I'm going back to the jobs folder and set all projects to <disabled>false</disabled> without killing the server
4. I reload configuration from the disk - no errors