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

Using Other Views filter, I'm getting a stack overflow error after update to Jenkins 1.459

    Details

      Description

      Due to https://github.com/jenkinsci/jenkins/commit/85e13303f8cfbebeb7dab347fda8ccf4069070b6 , any view using Other Views filter now gets a StackOverflowError.

      The reason is that it uses a wrong way of retrieving the referenced view, by getting first 'all' the views.

      1. StackOverflow.txt
        73 kB
        Vincent Latombe
      2. stacktraceflow.txt
        67 kB
        Gergely Nagy

        Issue Links

          Activity

          Hide
          jacob_robertson Jacob Robertson added a comment - - edited

          I see the error clearly documented in this ticket, but I cannot reproduce it. Is that commit you point to in GIT been released as part of the latest version of Jenkins? I installed the latest version of Jenkins (1.461) and the latest version of the Sectioned view plugin (because that is what shows up in the stack overflow attachment), but no combination of views and Other Views filter causes the issue. Can you provide me some more details so I can reproduce locally? Thanks!

          (edit: I re-read the name of the ticket, and I'm going to try on this exact version 1.459 of Jenkins first)

          Show
          jacob_robertson Jacob Robertson added a comment - - edited I see the error clearly documented in this ticket, but I cannot reproduce it. Is that commit you point to in GIT been released as part of the latest version of Jenkins? I installed the latest version of Jenkins (1.461) and the latest version of the Sectioned view plugin (because that is what shows up in the stack overflow attachment), but no combination of views and Other Views filter causes the issue. Can you provide me some more details so I can reproduce locally? Thanks! (edit: I re-read the name of the ticket, and I'm going to try on this exact version 1.459 of Jenkins first)
          Hide
          jacob_robertson Jacob Robertson added a comment -

          I tried this again against version 1.459 and still could not reproduce. I would like to fix this bug ASAP, but need help reproducing it.

          Show
          jacob_robertson Jacob Robertson added a comment - I tried this again against version 1.459 and still could not reproduce. I would like to fix this bug ASAP, but need help reproducing it.
          Hide
          inger Gergely Nagy added a comment - - edited

          We were hit by this too - thanks for reporting. It basically cause intermittent hungs, the "no HTTP reply kind" (https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+is+hanging).
          I haven't found a good way to reproduce this yet, but I'm getting a slightly different log for the endless recursion - attaching. Extract:

          at hudson.views.AbstractIncludeExcludeJobFilter.filter(AbstractIncludeExcludeJobFilter.java:57)
          at hudson.model.ListView.getItems(ListView.java:162)
          at hudson.model.ListView.getItems(ListView.java:58)
          at hudson.security.AuthorizationStrategy$1.hasPermission(AuthorizationStrategy.java:103)
          at hudson.security.ACL.hasPermission(ACL.java:65)
          at hudson.model.View.hasPermission(View.java:503)
          at hudson.model.ViewGroupMixIn.getViews(ViewGroupMixIn.java:115)
          at jenkins.model.Jenkins.getViews(Jenkins.java:1370)
          at hudson.views.OtherViewsFilter.getAllViews(OtherViewsFilter.java:148)
          at hudson.views.UnclassifiedJobsFilter.doFilter(UnclassifiedJobsFilter.java:27)
          at hudson.views.AbstractIncludeExcludeJobFilter.filter(AbstractIncludeExcludeJobFilter.java:57)

          Show
          inger Gergely Nagy added a comment - - edited We were hit by this too - thanks for reporting. It basically cause intermittent hungs, the "no HTTP reply kind" ( https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+is+hanging ). I haven't found a good way to reproduce this yet, but I'm getting a slightly different log for the endless recursion - attaching. Extract: at hudson.views.AbstractIncludeExcludeJobFilter.filter(AbstractIncludeExcludeJobFilter.java:57) at hudson.model.ListView.getItems(ListView.java:162) at hudson.model.ListView.getItems(ListView.java:58) at hudson.security.AuthorizationStrategy$1.hasPermission(AuthorizationStrategy.java:103) at hudson.security.ACL.hasPermission(ACL.java:65) at hudson.model.View.hasPermission(View.java:503) at hudson.model.ViewGroupMixIn.getViews(ViewGroupMixIn.java:115) at jenkins.model.Jenkins.getViews(Jenkins.java:1370) at hudson.views.OtherViewsFilter.getAllViews(OtherViewsFilter.java:148) at hudson.views.UnclassifiedJobsFilter.doFilter(UnclassifiedJobsFilter.java:27) at hudson.views.AbstractIncludeExcludeJobFilter.filter(AbstractIncludeExcludeJobFilter.java:57)
          Hide
          evernat evernat added a comment -

          Do you have reproduced this issue recently? If yes, with which versions of Jenkins and of the plugins?

          Show
          evernat evernat added a comment - Do you have reproduced this issue recently? If yes, with which versions of Jenkins and of the plugins?
          Hide
          asuffield Andrew Suffield added a comment -

          We just hit this on 1.519 with the same stack trace, stuck in a recursive loop around OtherViewsFilter. Removing the other views filter that we were using (and didn't really need) made it go away.

          Show
          asuffield Andrew Suffield added a comment - We just hit this on 1.519 with the same stack trace, stuck in a recursive loop around OtherViewsFilter. Removing the other views filter that we were using (and didn't really need) made it go away.
          Hide
          asmundo Asmund Ostvold added a comment -

          I believe my installation is getting this issue. I have no other view filter plugin installed to my knowledge.

          Jenkins ver.: 1.532.3
          View Job Filters ver.: 1.26
          build-flow ver. 0.11.1

          More info can be provided if needed just ask. I will update the you if I figure out how to trigger the issue.

          Apr 16, 2014 7:51:55 AM hudson.ExpressionFactory2$JexlExpression evaluate
          WARNING: Caught exception evaluating: it.allViewsAsJson in /jenkins/job/jobname/descriptorByName/com.cloudbees.plugins.flow.BuildFlow/checkDsl. Reason: java.lang.reflect.InvocationTargetException
          java.lang.reflect.InvocationTargetException
          at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
          at java.lang.reflect.Method.invoke(Unknown Source)
          at org.apache.commons.jexl.util.PropertyExecutor.execute(PropertyExecutor.java:125)
          at org.apache.commons.jexl.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:314)
          at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:185)
          at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:75)
          at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)
          at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)
          at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51)
          at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80)
          at hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:74)
          at org.apache.commons.jelly.parser.EscapingExpression.evaluate(EscapingExpression.java:24)
          at org.apache.commons.jelly.impl.ExpressionScript.run(ExpressionScript.java:66)
          at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
          at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
          at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
          at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
          at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81)
          at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:147)
          at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
          at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
          at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:150)
          at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
          at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
          at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
          at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
          at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
          at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
          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.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
          at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81)
          at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63)
          at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53)
          at org.kohsuke.stapler.jelly.JellyFacet$1.dispatch(JellyFacet.java:95)
          at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:631)
          at hudson.init.impl.InstallUncaughtExceptionHandler$1.reportException(InstallUncaughtExceptionHandler.java:25)
          at org.kohsuke.stapler.compression.CompressionFilter.reportException(CompressionFilter.java:63)
          at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:55)
          at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
          at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
          at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
          at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
          at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
          at winstone.RequestDispatcher.forward(RequestDispatcher.java:331)
          at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:227)
          at winstone.RequestHandlerThread.run(RequestHandlerThread.java:150)
          at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
          at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
          at java.util.concurrent.FutureTask.run(Unknown Source)
          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 sun.nio.cs.StreamEncoder.implFlush(Unknown Source)
          at sun.nio.cs.StreamEncoder.flush(Unknown Source)
          at java.io.OutputStreamWriter.flush(Unknown Source)
          at java.util.logging.StreamHandler.flush(Unknown Source)
          at java.util.logging.ConsoleHandler.publish(Unknown Source)
          at java.util.logging.Logger.log(Unknown Source)
          at java.util.logging.Logger.doLog(Unknown Source)
          at java.util.logging.Logger.log(Unknown Source)
          at java.util.logging.Logger.finer(Unknown Source)
          at hudson.security.SidACL._hasPermission(SidACL.java:71)
          at hudson.security.SidACL.hasPermission(SidACL.java:51)
          at hudson.security.ACL.hasPermission(ACL.java:64)
          at hudson.model.AbstractItem.hasPermission(AbstractItem.java:448)
          at jenkins.model.Jenkins.getItems(Jenkins.java:1368)
          at jenkins.model.Jenkins.getItems(Jenkins.java:311)
          at hudson.model.Items.getAllItems(Items.java:253)
          at hudson.model.ListView.getItems(ListView.java:167)
          at hudson.model.ListView.getItems(ListView.java:60)
          at hudson.security.AuthorizationStrategy$1.hasPermission(AuthorizationStrategy.java:104)
          at hudson.security.ACL.hasPermission(ACL.java:64)
          at hudson.model.View.hasPermission(View.java:580)
          at hudson.model.ViewGroupMixIn.getViews(ViewGroupMixIn.java:115)
          at jenkins.model.Jenkins.getViews(Jenkins.java:1461)
          at hudson.views.OtherViewsFilter.getAllViews(OtherViewsFilter.java:152)
          at hudson.views.UnclassifiedJobsFilter.doFilter(UnclassifiedJobsFilter.java:27)
          at hudson.views.AbstractIncludeExcludeJobFilter.filter(AbstractIncludeExcludeJobFilter.java:57)
          at hudson.model.ListView.getItems(ListView.java:180)
          at hudson.model.ListView.getItems(ListView.java:60)
          at hudson.security.AuthorizationStrategy$1.hasPermission(AuthorizationStrategy.java:104)
          at hudson.security.ACL.hasPermission(ACL.java:64)
          at hudson.model.View.hasPermission(View.java:580)
          at hudson.model.ViewGroupMixIn.getViews(ViewGroupMixIn.java:115)
          at jenkins.model.Jenkins.getViews(Jenkins.java:1461)
          at hudson.views.OtherViewsFilter.getAllViews(OtherViewsFilter.java:152)
          at hudson.views.UnclassifiedJobsFilter.doFilter(UnclassifiedJobsFilter.java:27)
          at hudson.views.AbstractIncludeExcludeJobFilter.filter(AbstractIncludeExcludeJobFilter.java:57)
          at hudson.model.ListView.getItems(ListView.java:180)
          at hudson.model.ListView.getItems(ListView.java:60)
          at hudson.security.AuthorizationStrategy$1.hasPermission(AuthorizationStrategy.java:104)

          Show
          asmundo Asmund Ostvold added a comment - I believe my installation is getting this issue. I have no other view filter plugin installed to my knowledge. Jenkins ver.: 1.532.3 View Job Filters ver.: 1.26 build-flow ver. 0.11.1 More info can be provided if needed just ask. I will update the you if I figure out how to trigger the issue. Apr 16, 2014 7:51:55 AM hudson.ExpressionFactory2$JexlExpression evaluate WARNING: Caught exception evaluating: it.allViewsAsJson in /jenkins/job/jobname/descriptorByName/com.cloudbees.plugins.flow.BuildFlow/checkDsl. Reason: java.lang.reflect.InvocationTargetException java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.commons.jexl.util.PropertyExecutor.execute(PropertyExecutor.java:125) at org.apache.commons.jexl.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:314) at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:185) at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:75) at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83) at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57) at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51) at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80) at hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:74) at org.apache.commons.jelly.parser.EscapingExpression.evaluate(EscapingExpression.java:24) at org.apache.commons.jelly.impl.ExpressionScript.run(ExpressionScript.java:66) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81) at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:147) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161) at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:150) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) 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.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81) at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63) at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53) at org.kohsuke.stapler.jelly.JellyFacet$1.dispatch(JellyFacet.java:95) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:631) at hudson.init.impl.InstallUncaughtExceptionHandler$1.reportException(InstallUncaughtExceptionHandler.java:25) at org.kohsuke.stapler.compression.CompressionFilter.reportException(CompressionFilter.java:63) at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:55) at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81) at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) at winstone.RequestDispatcher.forward(RequestDispatcher.java:331) at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:227) at winstone.RequestHandlerThread.run(RequestHandlerThread.java:150) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) 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 sun.nio.cs.StreamEncoder.implFlush(Unknown Source) at sun.nio.cs.StreamEncoder.flush(Unknown Source) at java.io.OutputStreamWriter.flush(Unknown Source) at java.util.logging.StreamHandler.flush(Unknown Source) at java.util.logging.ConsoleHandler.publish(Unknown Source) at java.util.logging.Logger.log(Unknown Source) at java.util.logging.Logger.doLog(Unknown Source) at java.util.logging.Logger.log(Unknown Source) at java.util.logging.Logger.finer(Unknown Source) at hudson.security.SidACL._hasPermission(SidACL.java:71) at hudson.security.SidACL.hasPermission(SidACL.java:51) at hudson.security.ACL.hasPermission(ACL.java:64) at hudson.model.AbstractItem.hasPermission(AbstractItem.java:448) at jenkins.model.Jenkins.getItems(Jenkins.java:1368) at jenkins.model.Jenkins.getItems(Jenkins.java:311) at hudson.model.Items.getAllItems(Items.java:253) at hudson.model.ListView.getItems(ListView.java:167) at hudson.model.ListView.getItems(ListView.java:60) at hudson.security.AuthorizationStrategy$1.hasPermission(AuthorizationStrategy.java:104) at hudson.security.ACL.hasPermission(ACL.java:64) at hudson.model.View.hasPermission(View.java:580) at hudson.model.ViewGroupMixIn.getViews(ViewGroupMixIn.java:115) at jenkins.model.Jenkins.getViews(Jenkins.java:1461) at hudson.views.OtherViewsFilter.getAllViews(OtherViewsFilter.java:152) at hudson.views.UnclassifiedJobsFilter.doFilter(UnclassifiedJobsFilter.java:27) at hudson.views.AbstractIncludeExcludeJobFilter.filter(AbstractIncludeExcludeJobFilter.java:57) at hudson.model.ListView.getItems(ListView.java:180) at hudson.model.ListView.getItems(ListView.java:60) at hudson.security.AuthorizationStrategy$1.hasPermission(AuthorizationStrategy.java:104) at hudson.security.ACL.hasPermission(ACL.java:64) at hudson.model.View.hasPermission(View.java:580) at hudson.model.ViewGroupMixIn.getViews(ViewGroupMixIn.java:115) at jenkins.model.Jenkins.getViews(Jenkins.java:1461) at hudson.views.OtherViewsFilter.getAllViews(OtherViewsFilter.java:152) at hudson.views.UnclassifiedJobsFilter.doFilter(UnclassifiedJobsFilter.java:27) at hudson.views.AbstractIncludeExcludeJobFilter.filter(AbstractIncludeExcludeJobFilter.java:57) at hudson.model.ListView.getItems(ListView.java:180) at hudson.model.ListView.getItems(ListView.java:60) at hudson.security.AuthorizationStrategy$1.hasPermission(AuthorizationStrategy.java:104)

            People

            • Assignee:
              jacob_robertson Jacob Robertson
              Reporter:
              vlatombe Vincent Latombe
            • Votes:
              3 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated: