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

Stack Overflow when trying to save system configuration

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • jira-trigger-plugin
    • Windows server 2012 x64
      Jenkins 2.19.1

      When attempting to save the system configuration, I get a stack overflow as noted below.

      I attempted to remove all plugins I was not using to try to see if the issue was related to a plugin, but was unsuccessful. Plugin list is at the bottom.

      Reverting back to 2.7.4 resolves the issue, which makes me believe this to be a Jenkins core issue.

      Summary stack:
      A problem occurred while processing the request. Please check our bug tracker to see if a similar problem has already been reported. If it is already reported, please vote and put a comment on it to let us gauge the impact of the problem. If you think this is a new issue, please file a new issue. When you file an issue, make sure to add the entire stack trace, along with the version of Jenkins and relevant plugins. The users list might be also useful in understanding what has happened.

      Stack trace

      javax.servlet.ServletException: java.lang.StackOverflowError
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:796)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
      at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
      at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135)
      at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
      at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
      at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
      at com.marvelution.jenkins.plugins.jira.filter.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:51)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
      at com.marvelution.jenkins.plugins.jira.filter.OAuthFilter.doFilter(OAuthFilter.java:87)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
      at javax.servlet.FilterChain$doFilter.call(Unknown Source)
      at com.ceilfors.jenkins.plugins.jiratrigger.ExceptionLoggingFilter.doFilter(ExceptionLoggingFilter.groovy:22)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
      at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:126)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:80)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
      at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
      at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
      at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
      at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553)
      at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
      at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
      at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
      at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
      at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
      at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
      at org.eclipse.jetty.server.Server.handle(Server.java:499)
      at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
      at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
      at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
      at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)
      Caused by: java.lang.StackOverflowError
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(Unknown Source)
      at org.eclipse.jetty.webapp.WebAppClassLoader.findClass(WebAppClassLoader.java:510)
      at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:441)
      at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:403)
      at hudson.Util.makeWritable(Util.java:313)
      at hudson.Util.tryOnceDeleteFile(Util.java:286)
      at hudson.Util.deleteFile(Util.java:246)
      at hudson.util.AtomicFileWriter.commit(AtomicFileWriter.java:113)
      at hudson.XmlFile.write(XmlFile.java:179)
      at hudson.model.Descriptor.save(Descriptor.java:864)
      at hudson.model.Saveable$save.callCurrent(Unknown Source)
      at com.ceilfors.jenkins.plugins.jiratrigger.JiraTriggerGlobalConfiguration.configure(JiraTriggerGlobalConfiguration.groovy:36)
      at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
      at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
      at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1215)
      at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:132)
      at com.ceilfors.jenkins.plugins.jiratrigger.JiraTriggerGlobalConfiguration.configure(JiraTriggerGlobalConfiguration.groovy:37)
      at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
      at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
      at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1215)
      at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:132)
      at com.ceilfors.jenkins.plugins.jiratrigger.JiraTriggerGlobalConfiguration.configure(JiraTriggerGlobalConfiguration.groovy:37)
      at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
      at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
      at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1215)
      at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:132)
      at com.ceilfors.jenkins.plugins.jiratrigger.JiraTriggerGlobalConfiguration.configure(JiraTriggerGlobalConfiguration.groovy:37)
      ....

          [JENKINS-39076] Stack Overflow when trying to save system configuration

          Daniel Beck added a comment -

          Daniel Beck added a comment - May be caused by https://github.com/jenkinsci/jenkins/pull/2509 jglick Could you PTAL? Does https://github.com/jenkinsci/jira-trigger-plugin/blob/e6ea6e0b54ad910d38700d2a539801cd008b3f75/src/main/groovy/com/ceilfors/jenkins/plugins/jiratrigger/JiraTriggerGlobalConfiguration.groovy#L32...L37 look correct to you? This super call just shouldn't be there I think…

          Jesse Glick added a comment -

          Possibly a bug in Groovy. I would not recommend src/main/groovy/ for production code. At any rate, the super call should be deleted I think.

          Jesse Glick added a comment - Possibly a bug in Groovy. I would not recommend src/main/groovy/ for production code. At any rate, the super call should be deleted I think.

          Alexander Yu added a comment -

          Same issue with 2.19.1 on Debian 8 with Java 1.8.0_91, attaching the stack trace.

          Alexander Yu added a comment - Same issue with 2.19.1 on Debian 8 with Java 1.8.0_91, attaching the stack trace.

          Code changed in jenkins
          User: Wisen Tanasa
          Path:
          src/main/groovy/com/ceilfors/jenkins/plugins/jiratrigger/JiraTriggerGlobalConfiguration.groovy
          http://jenkins-ci.org/commit/jira-trigger-plugin/4300ee10f73c88c4d4d5a40220137916ac715c93
          Log:
          JENKINS-39076 Do not call super to workaround Groovy StackOverflowError bug.

          Utilize StaplerRequest.bindJSON method as per the new implementation of GlobalConfiguration in Jenkins 2.x. bindJSON method requires setter methods, hence opening the setter methods visibility from package to public.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Wisen Tanasa Path: src/main/groovy/com/ceilfors/jenkins/plugins/jiratrigger/JiraTriggerGlobalConfiguration.groovy http://jenkins-ci.org/commit/jira-trigger-plugin/4300ee10f73c88c4d4d5a40220137916ac715c93 Log: JENKINS-39076 Do not call super to workaround Groovy StackOverflowError bug. Utilize StaplerRequest.bindJSON method as per the new implementation of GlobalConfiguration in Jenkins 2.x. bindJSON method requires setter methods, hence opening the setter methods visibility from package to public.

          Wisen Tanasa added a comment -

          Fixed in jira-trigger-plugin version 0.2.4.

          Wisen Tanasa added a comment - Fixed in jira-trigger-plugin version 0.2.4.

            ceilfors Wisen Tanasa
            contewit Brenden Conte
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: