[JIRA] (JENKINS-37269) Manage Jenkins page and Dashboard-view page crash when Multi-branch-Matrix project has more than 25 branch jobs

7 views
Skip to first unread message

totoroliu1215@hotmail.com (JIRA)

unread,
Aug 8, 2016, 9:39:03 PM8/8/16
to jenkinsc...@googlegroups.com
Rick Liu created an issue
 
Jenkins / Bug JENKINS-37269
Manage Jenkins page and Dashboard-view page crash when Multi-branch-Matrix project has more than 25 branch jobs
Issue Type: Bug Bug
Assignee: Evan Van Dyke
Attachments: GET_manage_response.html, jenkins.log, Manage Jenkins [Jenkins] - Mozilla Firefox_004.png, Manage Jenkins [Jenkins].html, Plugin Update Center [Jenkins].html, Selection_003.png
Components: core, dashboard-view-plugin, multi-branch-project-plugin
Created: 2016/Aug/09 1:38 AM
Environment: Ubuntu 14.04 x86_64
OpenJDK-7u101
Jenkins 2.7.2
Multi-branch-project 0.5.2
Dashboard View 2.9.10
Priority: Blocker Blocker
Reporter: Rick Liu

Under a new Multi-Branch-Matrix project branch sources,
if I include more than 24 branches to create 24 branch jobs,
(refer to "Selection_003.png")
then I'll see Jenkins page crash for "Jnekins Manage" page and "Dashboard-view" page.
(refer to "Manage Jenkins [Jenkins] - Mozilla Firefox_004.png")

Within Jenkins log (refer to "jenkins.log"),
right after I save the configuration to include more than 24 branches,
I'll see many repeated WARNING:

hudson.ExpressionFactory2$JexlExpression evaluate
WARNING: Caught exception evaluating: it.queueItems in /ajaxBuildQueue. Reason: java.lang.reflect.InvocationTargetException
java.lang.reflect.InvocationTargetException

When I go to "Manage Jenkins" (/manage) page or a "Dashboard-view" page,
I'll see Jenkins Oops! crash page.
Refer to "Manage Jenkins [Jenkins].html" (the snapshot page of Manage Jenkins)

I also use Firebug to extract the "Get Manage - 500 Server Error" response.
Refer to "GET_Manage_response.html"

Stack trace

javax
.servlet.ServletException: org.apache.commons.jelly.JellyTagException: jar:file:/var/cache/jenkins/war
/WEB-INF/lib/jenkins-core-2.7.2.jar!/hudson/model/View/sidepanel.jelly:75:50: <st:include> Comparison
 method violates its general contract!
	at org.kohsuke.stapler.jelly.JellyFacet$1.dispatch(JellyFacet.java:103)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
	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 com.smartcodeltd.jenkinsci.plugin.assetbundler.filters.LessCSS.doFilter(LessCSS.java:47)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
	at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:59)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
	at hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:95)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
	at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:201)
	at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:178)
	at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:85)
	at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:104
)
	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:49)
	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.handler.RequestLogHandler.handle(RequestLogHandler.java:95)
	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(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.commons.jelly.JellyTagException: jar:file:/var/cache/jenkins/war/WEB-INF/lib/jenkins-core-2
.7.2.jar!/hudson/model/View/sidepanel.jelly:75:50: <st:include> Comparison method violates its general
 contract!
	at org.apache.commons.jelly.impl.TagScript.handleException(TagScript.java:726)
	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:281)
	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
	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.CallTagLibScript$1.run(CallTagLibScript.java:99)
	at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
	at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
	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:95)
	at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:147)
	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
	at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:95)
	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.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
	at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)
	at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
	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.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
	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.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.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
	at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:95)
	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)
	... 68 more
Caused by: java.lang.IllegalArgumentException: Comparison method violates its general contract!
	at java.util.TimSort.mergeHi(TimSort.java:868)
	at java.util.TimSort.mergeAt(TimSort.java:485)
	at java.util.TimSort.mergeCollapse(TimSort.java:410)
	at java.util.TimSort.sort(TimSort.java:214)
	at java.util.TimSort.sort(TimSort.java:173)
	at java.util.Arrays.sort(Arrays.java:659)
	at java.util.Collections.sort(Collections.java:217)
	at hudson.views.MostRecentJobsFilter.filter(MostRecentJobsFilter.java:35)
	at hudson.model.ListView.getItems(ListView.java:205)
	at hudson.model.ListView.getItems(ListView.java:69)
	at hudson.model.View.filterQueue(View.java:471)
	at hudson.model.View.getQueueItems(View.java:488)
	at sun.reflect.GeneratedMethodAccessor350.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
	at org.codehaus.groovy.runtime.metaclass.MethodMetaProperty$GetBeanMethodMetaProperty.getProperty(MethodMetaProperty
.java:76)
	at org.codehaus.groovy.runtime.callsite.GetEffectivePojoPropertySite.getProperty(GetEffectivePojoPropertySite
.java:64)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:296)

	at jenkins.widgets.BuildQueueWidget.index.run(index.groovy:5)
	at org.kohsuke.stapler.jelly.groovy.GroovierJellyScript.run(GroovierJellyScript.java:74)
	at org.kohsuke.stapler.jelly.groovy.GroovierJellyScript.run(GroovierJellyScript.java:62)
	at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:147)
	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
	... 110 more

Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)
Atlassian logo

totoroliu1215@hotmail.com (JIRA)

unread,
Aug 8, 2016, 9:43:01 PM8/8/16
to jenkinsc...@googlegroups.com
Rick Liu updated an issue
Change By: Rick Liu
Under a new Multi-Branch-Matrix project branch sources,
if I include more than 24 branches to create 24 branch jobs,
(refer to "*Selection_003.png*")
then I'll see Jenkins page crash for "*Jnekins Manage*" page and "*Dashboard-view*" page.
(refer to "*Manage Jenkins \[Jenkins\] - Mozilla Firefox_004.png*")

Within Jenkins log (refer to "*jenkins.log*"),

right after I save the configuration to include more than 24 branches,
I'll see many repeated WARNING:
{code}

hudson.ExpressionFactory2$JexlExpression evaluate
WARNING: Caught exception evaluating: it.queueItems in /ajaxBuildQueue. Reason: java.lang.reflect.InvocationTargetException
java.lang.reflect.InvocationTargetException
{code}



When I go to "Manage Jenkins" (/manage) page or a "Dashboard-view" page,
I'll see Jenkins Oops! crash page.
Refer to "*Manage Jenkins \[Jenkins\].html*" (the snapshot page of Manage Jenkins)


I also use Firebug to extract the "Get Manage - 500 Server Error" response.
Refer to "*GET_Manage_response.html*"
{code}
{code}


I include a list of the plugins that I'm currently using in "*Plugin Update Center \[Jenkins\].html*"
Right now,
I can 100% reproduce the same problem if I include more than 24 branches.
If I remove 1 branch to be 23 branches,
then all the pages display correctly.




totoroliu1215@hotmail.com (JIRA)

unread,
Aug 8, 2016, 9:44:01 PM8/8/16
to jenkinsc...@googlegroups.com

totoroliu1215@hotmail.com (JIRA)

unread,
Aug 8, 2016, 9:44:02 PM8/8/16
to jenkinsc...@googlegroups.com
Rick Liu updated an issue
Change By: Rick Liu
Environment:
Ubuntu 14.04 x86_64
OpenJDK-7u101
Jenkins 2.7.2
Multi-branch-project 0.5.2
Dashboard View 2.9.10

View Job Filters 1.27

totoroliu1215@hotmail.com (JIRA)

unread,
Aug 8, 2016, 9:54:03 PM8/8/16
to jenkinsc...@googlegroups.com
Rick Liu updated an issue
For Dashboard-View issue,
I'm also able to reproduce it on a branch-new Jenkins2 server (fresh installation)
with only "*Dashboard-view*" plugin and "*View Job Filters*" plugin.
Within Dashboard-view configuration,
I select:
Filter build queue
Filter build executors
Status Filter selects "All selected jobs" with "Recurse in subfolders
and 3 Job filters:
All Jobs
Job Type Filter
Most Recent Jobs Filter









totoroliu1215@hotmail.com (JIRA)

unread,
Aug 8, 2016, 9:57:01 PM8/8/16
to jenkinsc...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages