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

Stack overflow error attempting to install a plugin to Jenkins 2.249.1

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Blocker Blocker
    • tics-plugin
    • None
    • jenkins/jenkins:2.249.1 docker image

      When I try to install a plugin from a new installation of the Jenkins 2.249.1 docker image, the docker console log reports a stack overflow error and never displays the "Install" button.

      Steps I took:

      1. Run Jenkins 2.249.1 in Docker docker run --rm -i -t -p 8080:8080 jenkins/jenkins:2.249.1
      2. Create no user
      3. Install no plugins
      4. Search for 'platformlabeler' from the "Available" tab of "Manage Jenkins" >> "Manage Plugins"
      5. Click the checkbox on the 'platformlabeler' row
      6. Confirm that the console output shows the stack overflow error and no "Install" button is displayed
      2020-10-06 20:18:26.474+0000 [id=73]    WARNING h.i.i.InstallUncaughtExceptionHandler#handleException
      org.apache.commons.jelly.JellyTagException: jar:file:/var/jenkins_home/war/WEB-INF/lib/jenkins-core-2.249.1.jar!/lib/layout/isAdmin.jelly:28:21: <d:invokeBody> java.lang.StackOverflowError
              at org.apache.commons.jelly.impl.TagScript.handleException(TagScript.java:745)
              at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:289)
              at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
              at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
              at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
              at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
              at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:100)
              at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
              at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
      ... lots of stack trace deleted
      Caused: javax.servlet.ServletException
              at org.kohsuke.stapler.Facet$1.dispatch(Facet.java:249)
              at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
              at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898)
              at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:170)
              at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
              at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
      

      Issue was not visible in update center data retrieved 18 hours ago by Jenkins 2.249.1. Became visible in my Jenkins 2.249.1 installation after I pressed "Check now" in the plugin manager.

          [JENKINS-63877] Stack overflow error attempting to install a plugin to Jenkins 2.249.1

          Mark Waite created issue -
          Mark Waite made changes -
          Description Original: When I try to install a plugin from a new installation of the Jenkins 2.249.1 docker image, the docker console log reports a stack overflow error and never displays the "Install" button.

          Steps I took:

          # Run Jenkins 2.249.1 in Docker docker run --rm -i -t -p 8080:8080 jenkins/jenkins:2.249.1
          # Create no user
          # Install no plugins
          # Search for 'platformlabeler' from the "Available" tab of "Manage Jenkins" >> "Manage Plugins"
          # Click the checkbox on the 'platformlabeler' row
          # Confirm that the console output shows the stack overflow error and no "Install" button is displayed

          {noformat}
          2020-10-06 20:18:26.474+0000 [id=73] WARNING h.i.i.InstallUncaughtExceptionHandler#handleException
          org.apache.commons.jelly.JellyTagException: jar:file:/var/jenkins_home/war/WEB-INF/lib/jenkins-core-2.249.1.jar!/lib/layout/isAdmin.jelly:28:21: <d:invokeBody> java.lang.StackOverflowError
                  at org.apache.commons.jelly.impl.TagScript.handleException(TagScript.java:745)
                  at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:289)
                  at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
                  at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
                  at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
                  at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
                  at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:100)
                  at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
                  at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
          ... lots of stack trace deleted
          Caused: javax.servlet.ServletException
                  at org.kohsuke.stapler.Facet$1.dispatch(Facet.java:249)
                  at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
                  at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898)
                  at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:170)
                  at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
                  at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
          {noformat}
          New: When I try to install a plugin from a new installation of the Jenkins 2.249.1 docker image, the docker console log reports a stack overflow error and never displays the "Install" button.

          Steps I took:

          # Run Jenkins 2.249.1 in Docker docker run --rm -i -t -p 8080:8080 jenkins/jenkins:2.249.1
          # Create no user
          # Install no plugins
          # Search for 'platformlabeler' from the "Available" tab of "Manage Jenkins" >> "Manage Plugins"
          # Click the checkbox on the 'platformlabeler' row
          # Confirm that the console output shows the stack overflow error and no "Install" button is displayed

          {noformat}
          2020-10-06 20:18:26.474+0000 [id=73] WARNING h.i.i.InstallUncaughtExceptionHandler#handleException
          org.apache.commons.jelly.JellyTagException: jar:file:/var/jenkins_home/war/WEB-INF/lib/jenkins-core-2.249.1.jar!/lib/layout/isAdmin.jelly:28:21: <d:invokeBody> java.lang.StackOverflowError
                  at org.apache.commons.jelly.impl.TagScript.handleException(TagScript.java:745)
                  at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:289)
                  at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
                  at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
                  at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
                  at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
                  at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:100)
                  at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
                  at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
          ... lots of stack trace deleted
          Caused: javax.servlet.ServletException
                  at org.kohsuke.stapler.Facet$1.dispatch(Facet.java:249)
                  at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
                  at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898)
                  at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:170)
                  at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
                  at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
          {noformat}

          Issue was not visible in update center data retrieved 18 hours ago by Jenkins 2.249.1. Became visible in my Jenkins 2.249.1 installation after I pressed "Check now" in the plugin manager.

          Jesse Glick added a comment -

          What is the repeating block of the StackOverflowError? I think you truncated too much for that to be obvious.

          Jesse Glick added a comment - What is the repeating block of the StackOverflowError ? I think you truncated too much for that to be obvious.

          Tim Jacomb added a comment -

          I was able to just fetch it with 2.255

          Tim Jacomb added a comment - I was able to just fetch it with 2.255
          Mariano Benes made changes -
          Link New: This issue is related to JENKINS-63869 [ JENKINS-63869 ]
          Mariano Benes made changes -
          Link New: This issue is related to JENKINS-63869 [ JENKINS-63869 ]
          Mariano Benes made changes -
          Link New: This issue is related to JENKINS-63873 [ JENKINS-63873 ]
          Mariano Benes made changes -
          Link Original: This issue is related to JENKINS-63869 [ JENKINS-63869 ]

          Daniel Beck added a comment -

          The interesting part was truncated:

          2020-10-06T21:02:15.174326003Z 	at hudson.PluginManager$MetadataCache.of(PluginManager.java:1986)
          2020-10-06T21:02:15.174331803Z 	at hudson.model.UpdateSite$Plugin.getDependenciesIncompatibleWithInstalledVersion(UpdateSite.java:1458)
          2020-10-06T21:02:15.174338603Z 	at hudson.model.UpdateSite$Plugin.isNeededDependenciesCompatibleWithInstalledVersion(UpdateSite.java:1421)
          2020-10-06T21:02:15.174344803Z 	at hudson.model.UpdateSite$Plugin.isNeededDependenciesCompatibleWithInstalledVersion(UpdateSite.java:1416)
          2020-10-06T21:02:15.174350503Z 	at hudson.model.UpdateSite$Plugin.lambda$getDependenciesIncompatibleWithInstalledVersion$1(UpdateSite.java:1461)
          2020-10-06T21:02:15.174356403Z 	at hudson.PluginManager$MetadataCache.lambda$of$0(PluginManager.java:1986)
          2020-10-06T21:02:15.174362004Z 	at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1133) 

          Given this, we might have a circular dependency between plugins?

          Daniel Beck added a comment - The interesting part was truncated: 2020-10-06T21:02:15.174326003Z at hudson.PluginManager$MetadataCache.of(PluginManager.java:1986) 2020-10-06T21:02:15.174331803Z at hudson.model.UpdateSite$Plugin.getDependenciesIncompatibleWithInstalledVersion(UpdateSite.java:1458) 2020-10-06T21:02:15.174338603Z at hudson.model.UpdateSite$Plugin.isNeededDependenciesCompatibleWithInstalledVersion(UpdateSite.java:1421) 2020-10-06T21:02:15.174344803Z at hudson.model.UpdateSite$Plugin.isNeededDependenciesCompatibleWithInstalledVersion(UpdateSite.java:1416) 2020-10-06T21:02:15.174350503Z at hudson.model.UpdateSite$Plugin.lambda$getDependenciesIncompatibleWithInstalledVersion$1(UpdateSite.java:1461) 2020-10-06T21:02:15.174356403Z at hudson.PluginManager$MetadataCache.lambda$of$0(PluginManager.java:1986) 2020-10-06T21:02:15.174362004Z at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1133) Given this, we might have a circular dependency between plugins?

          Tim Jacomb added a comment - - edited

          Tim Jacomb added a comment - - edited reproduced on 2.204.6 https://gist.github.com/timja/627f0124fd7dd3df2c58001cebefbb7e

            danielbeck Daniel Beck
            markewaite Mark Waite
            Votes:
            1 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: