On Tue, Sep 21, 2010 at 9:44 PM, Niklas Gustavsson <nik...@protocol7.com> wrote: > On Tue, Sep 21, 2010 at 5:52 PM, Jesse Glick <jesse.gl...@oracle.com> wrote: >> I had thought this was just a problem with the old Hudson installation, but >> it is still true: clicking "Save" from a job's /configure screen takes >> several minutes before the job's main page is loaded again. This should only >> take a second or two. Maybe someone can trace what is taking so long? > > It's on my todo list, but I haven't yet looked into it.
Thread dumping a few job configuration saves, the all sit on this stacktrace (even non-Maven builds): "Handling POST /hudson/job/Ant_JDK_1.4/configSubmit : http-8090-40" daemon prio=10 tid=0x0000000041940800 nid=0x46a4 runnable [0x00007f2fa6721000] java.lang.Thread.State: RUNNABLE at java.lang.String.intern(Native Method) at hudson.maven.ModuleDependency.<init>(ModuleDependency.java:48) at hudson.maven.ModuleDependency.<init>(ModuleDependency.java:54) at hudson.maven.MavenModule.asDependency(MavenModule.java:296) at hudson.maven.MavenModule.buildDependencyGraph(MavenModule.java:385) at hudson.maven.MavenModuleSet.buildDependencyGraph(MavenModuleSet.java:487) at hudson.model.DependencyGraph.<init>(DependencyGraph.java:100) at hudson.model.Hudson.rebuildDependencyGraph(Hudson.java:3346) at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:588) at sun.reflect.GeneratedMethodAccessor1225.invoke(Unknown Source) ... Looking into the code, what this does is that the last thing Hudson do on saving a job configuration is to recalculate the dependency graph between all jobs. The DependencyGraph code warns that this is slow, looks like it will loop over all jobs which in turn will loop over all jobs... And in our pretty large environment, this adds up pretty fast. If anyone got any idea, besides asking the Hudson devs to optimize this code, feel free to speak up :-) /niklas