Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-3163

Unable to execute Hudson 1.286 running in Glassfish v2

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • core
    • None
    • Platform: Other, OS: All

      I upgraded to 1.286 by publishing the war to a Glassfish v2 container.

      I am now unable to launch the Hudson.

      I see the follwing:
      <screen>
      HTTP Status 500 -

      type Exception report

      message

      descriptionThe server encountered an internal error () that prevented it from
      fulfilling this request.

      exception

      javax.servlet.ServletException: org.apache.commons.jelly.JellyTagException:
      file:/opt/glassfish/domains/domain1/generated/jsp/j2ee-modules/hudson/loader/lib/layout/layout.jelly:119:53:
      java.lang.StackOverflowError

      root cause

      org.apache.commons.jelly.JellyTagException:
      file:/opt/glassfish/domains/domain1/generated/jsp/j2ee-modules/hudson/loader/lib/layout/layout.jelly:119:53:
      java.lang.StackOverflowError

      root cause

      java.lang.StackOverflowError

      note The full stack traces of the exception and its root causes are available in
      the Sun Java System Application Server 9.1_02 logs.
      Sun Java System Application Server 9.1_02
      </screen>

      From the log entry.

      <log>
      Timestamp

      Feb 26, 2009 14:47:58.185
      Log Level

      SEVERE
      Logger

      javax.enterprise.system.container.web
      Name-Value Pairs

      _ThreadID=35;_ThreadName=httpSSLWorkerThread-8080-1;_RequestID=66870184-5553-480c-81c5-c01711264f71;
      Record Number

      19
      Message ID

      StandardWrapperValve[Stapler]
      Complete Message

      PWC1406: Servlet.service() for servlet Stapler threw exception
      org.apache.commons.jelly.JellyTagException:
      file:/opt/glassfish/domains/domain1/generated/jsp/j2ee-modules/hudson/loader/lib/layout/layout.jelly:119:53:
      <j:forEach> java.lang.StackOverflowError at
      org.apache.commons.jelly.impl.TagScript.handleException(TagScript.java:713) at
      org.apache.commons.jelly.impl.TagScript.run(TagScript.java:282) at
      org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at
      org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:186) at
      org.apache.commons.jelly.impl.StaticTag.doTag(StaticTag.java:65) at
      org.apache.commons.jelly.impl.StaticTagScript.run(StaticTagScript.java:112) at
      org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at
      org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:186) at
      org.apache.commons.jelly.impl.StaticTag.doTag(StaticTag.java:65) at
      org.apache.commons.jelly.impl.StaticTagScript.run(StaticTagScript.java:112) at
      org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at
      org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:186) at
      org.apache.commons.jelly.tags.core.JellyTag.doTag(JellyTag.java:45) at
      org.apache.commons.jelly.impl.TagScript.run(TagScript.java:262) at
      org.apache.commons.jelly.impl.DynamicTag.doTag(DynamicTag.java:81) at
      org.apache.commons.jelly.impl.TagScript.run(TagScript.java:262) at
      org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at
      org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:186) at
      org.apache.commons.jelly.tags.core.JellyTag.doTag(JellyTag.java:45) at
      org.apache.commons.jelly.impl.TagScript.run(TagScript.java:262) at
      org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:29)
      at
      org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:43)
      at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:70)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:427) at
      org.kohsuke.stapler.Stapler.invoke(Stapler.java:356) at
      org.kohsuke.stapler.Stapler.service(Stapler.java:116) at
      javax.servlet.http.HttpServlet.service(HttpServlet.java:831) at
      org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
      at
      org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
      at
      org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:91) at
      hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:83) at
      org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
      at
      org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
      at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:131) at
      org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
      at
      org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
      at
      org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
      at
      org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
      at
      org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
      at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
      at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
      at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at
      org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206) at
      org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) at
      org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) at
      org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571) at
      org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080) at
      org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150) at
      org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) at
      org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) at
      org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571) at
      org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080) at
      org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272) at
      com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
      at
      com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
      at
      com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
      at
      com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
      at
      com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
      at
      com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
      at
      com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380)
      at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265) at
      com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
      Caused by: java.lang.StackOverflowError at
      java.util.zip.Inflater.inflate(Inflater.java:223) at
      java.util.zip.InflaterInputStream.read(InflaterInputStream.java:135) at
      java.io.FilterInputStream.read(FilterInputStream.java:116) at
      java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2271) at
      java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2279)
      at
      java.io.ObjectInputStream$BlockDataInputStream.readBlockHeader(ObjectInputStream.java:2435)
      at
      java.io.ObjectInputStream$BlockDataInputStream.refill(ObjectInputStream.java:2499)
      at
      java.io.ObjectInputStream$BlockDataInputStream.read(ObjectInputStream.java:2571)
      at java.io.DataInputStream.readInt(DataInputStream.java:370) at
      java.io.ObjectInputStream$BlockDataInputStream.readInt(ObjectInputStream.java:2776)
      at java.io.ObjectInputStream.readInt(ObjectInputStream.java:950) at
      java.util.TreeMap.readObject(TreeMap.java:2266) at
      sun.reflect.GeneratedMethodAccessor326.invoke(Unknown Source) at
      sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597) at
      java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974) at
      java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849) at
      java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at
      java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at
      java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) at
      java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) at
      java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at
      java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at
      java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) at
      net.java.sezpoz.Index$LazyIndexIterator.doPeek(Index.java:133) at
      net.java.sezpoz.Index$LazyIndexIterator.doPeek(Index.java:146) at
      net.java.sezpoz.Index$LazyIndexIterator.doPeek(Index.java:146) at
      net.java.sezpoz.Index$LazyIndexIterator.doPeek(Index.java:146) at
      net.java.sezpoz.Index$LazyIndexIterator.doPeek(Index.java:146) at
      ...

          [JENKINS-3163] Unable to execute Hudson 1.286 running in Glassfish v2

          Tom Jordan created issue -

          Jesse Glick added a comment -

          Does the log say anything after what you reported? Perhaps there is no infinite
          loop but GF just sets a limited stack depth?

          Jesse Glick added a comment - Does the log say anything after what you reported? Perhaps there is no infinite loop but GF just sets a limited stack depth?

          Jesse Glick added a comment -

          I will improve Index.doPeek to use a loop rather than recursion, but the
          recursion should not be very deep to begin with. The stack trace makes it look
          like Glassfish's ClassLoader is offering the same JAR contents over and over in
          getResources, which seems odd. (URLClassLoader.gR will not repeat entries unless
          the URLs actually differ.)

          I also cannot reproduce any problem in "Sun Java System Application Server
          9.1_02 (build b04-fcs)" using hudson.war 1.287-SNAPSHOT.

          Jesse Glick added a comment - I will improve Index.doPeek to use a loop rather than recursion, but the recursion should not be very deep to begin with. The stack trace makes it look like Glassfish's ClassLoader is offering the same JAR contents over and over in getResources, which seems odd. (URLClassLoader.gR will not repeat entries unless the URLs actually differ.) I also cannot reproduce any problem in "Sun Java System Application Server 9.1_02 (build b04-fcs)" using hudson.war 1.287-SNAPSHOT.

          Jesse Glick added a comment -

          Nor can I reproduce any problem in a fresh 2.1 installation.

          Jesse Glick added a comment - Nor can I reproduce any problem in a fresh 2.1 installation.

          Tom Jordan added a comment -

          I rolled back to 1.285 and it Hudson will come up ready for work.

          I tried launching the glassfish domain with both JRE 1.6 and 1.5

          Tom Jordan added a comment - I rolled back to 1.285 and it Hudson will come up ready for work. I tried launching the glassfish domain with both JRE 1.6 and 1.5

          Jesse Glick added a comment -

          Created an attachment (id=579)
          Try replacing sezpoz-1.1.jar in Hudson's WEB-INF/lib/ with this and see if it makes any difference

          Jesse Glick added a comment - Created an attachment (id=579) Try replacing sezpoz-1.1.jar in Hudson's WEB-INF/lib/ with this and see if it makes any difference

          Tom Jordan added a comment -

          @jglick Replacing the sezpoz jar file with the one you attached did the trick.

          I am now up and running on the modified 1.286

          Tom Jordan added a comment - @jglick Replacing the sezpoz jar file with the one you attached did the trick. I am now up and running on the modified 1.286

          Tom Jordan added a comment -

          I have confirmed that the released version of 1.287 exhibits the same problem I
          originally reported.

          I have also confirmed that replacing the sezpoz jar file with the 1.2-SNAPSHOT
          version, eliminates the problem for 1.287 also.

          Tom Jordan added a comment - I have confirmed that the released version of 1.287 exhibits the same problem I originally reported. I have also confirmed that replacing the sezpoz jar file with the 1.2-SNAPSHOT version, eliminates the problem for 1.287 also.

          Code changed in hudson
          User: : jglick
          Path:
          trunk/hudson/main/core/pom.xml
          http://fisheye4.cenqua.com/changelog/hudson/?cs=15976
          Log:
          [FIXED JENKINS-3163] sezpoz-1.2 is reported to fix an infinite loop running on GFv2.

          SCM/JIRA link daemon added a comment - Code changed in hudson User: : jglick Path: trunk/hudson/main/core/pom.xml http://fisheye4.cenqua.com/changelog/hudson/?cs=15976 Log: [FIXED JENKINS-3163] sezpoz-1.2 is reported to fix an infinite loop running on GFv2.
          SCM/JIRA link daemon made changes -
          Resolution New: Fixed [ 1 ]
          Status Original: Open [ 1 ] New: Resolved [ 5 ]

            Unassigned Unassigned
            tdjordan Tom Jordan
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: