jenkinsci / junit-sql-storage-plugin

https://plugins.jenkins.io/junit-sql-storage/
MIT License
6 stars 14 forks source link

Test results do not load when N > 1000 tests #187

Closed Hellspam closed 1 month ago

Hellspam commented 2 years ago

Jenkins and plugins versions report

Environment ```text Jenkins: 2.332.2 OS: Linux - 5.10.104-linuxkit --- ace-editor:1.1 active-directory:2.25.1 analysis-model-api:10.9.4 ansicolor:1.0.1 ant:1.13 antisamy-markup-formatter:2.7 apache-httpcomponents-client-4-api:4.5.13-1.0 artifactory:3.16.1 atlassian-bitbucket-server-integration:3.2.0 authentication-tokens:1.4 badge:1.9.1 basic-branch-build-strategies:1.3.2 blueocean:1.25.3 blueocean-autofavorite:1.2.5 blueocean-bitbucket-pipeline:1.25.3 blueocean-commons:1.25.3 blueocean-config:1.25.3 blueocean-core-js:1.25.3 blueocean-dashboard:1.25.3 blueocean-display-url:2.4.1 blueocean-events:1.25.3 blueocean-git-pipeline:1.25.3 blueocean-github-pipeline:1.25.3 blueocean-i18n:1.25.3 blueocean-jwt:1.25.3 blueocean-personalization:1.25.3 blueocean-pipeline-api-impl:1.25.3 blueocean-pipeline-editor:1.25.3 blueocean-pipeline-scm-api:1.25.3 blueocean-rest:1.25.3 blueocean-rest-impl:1.25.3 blueocean-web:1.25.3 bootstrap4-api:4.6.0-3 bootstrap5-api:5.1.3-6 bouncycastle-api:2.25 branch-api:2.1044.v2c007e51b_87f build-blocker-plugin:1.7.8 build-name-setter:2.2.0 build-timeout:1.20 build-timestamp:1.0.3 build-user-vars-plugin:1.8 built-on-column:1.1 caffeine-api:2.9.2-29.v717aac953ff3 categorized-view:1.12 checks-api:1.7.2 cloud-stats:0.27 cloudbees-bitbucket-branch-source:762.v969cfe087fc0 cloudbees-disk-usage-simple:0.10 cloudbees-folder:6.714.v79e858ef76a_2 com.taboola.3rdpartylibs:1.0-SNAPSHOT (private-75fe5ac8-uri) com.taboola.monitor:1.8.9-SNAPSHOT (private-5973d22f-builder) command-launcher:1.6 compress-artifacts:1.10 conditional-buildstep:1.4.2 config-file-provider:3.9.0 configuration-as-code:1414.v878271fc496f copyartifact:1.46.3 cors-filter:1.1 credentials:1087.v16065d268466 credentials-binding:1.27.1 dark-theme:156.v6cf16af6f9ef dashboard-view:2.426.vb_93dcdb_b_0eb_0 data-tables-api:1.11.4-4 database:128.vaa83e142f7f2 database-mysql:1.4 description-setter:1.10 display-url-api:2.3.6 docker-commons:1.19 docker-workflow:1.28 downstream-ext:1.8 durable-task:495.v29cd95ec10f2 echarts-api:5.3.0-2 email-ext:2.87 extended-choice-parameter:346.vd87693c5a_86c extended-read-permission:3.2 extensible-choice-parameter:1.8.0 external-monitor-job:191.v363d0d1efdf8 favorite:2.4.1 flexible-publish:0.16.1 font-awesome-api:6.0.0-1 forensics-api:1.12.0 git:4.11.0 git-client:3.11.0 git-forensics:1.7.0 git-parameter:0.9.15 git-server:1.10 git-userContent:1.4 github:1.34.3 github-api:1.301-378.v9807bd746da5 github-branch-source:1598.v91207e9f9b_4a_ google-metadata-plugin:0.3.1 google-oauth-plugin:1.0.6 google-storage-plugin:1.5.6 gradle:1.38 groovy:2.4 groovy-postbuild:2.5 h2-api:1.4.199 handlebars:3.0.8 handy-uri-templates-2-api:2.1.8-1.0 htmlpublisher:1.29 http_request:1.14 ivy:2.1 jackson2-api:2.13.2-260.v43d711474c77 javadoc:217.v905b_86277a_2a_ javax-activation-api:1.2.0-2 javax-mail-api:1.6.2-5 jaxb:2.3.0.1 jdk-tool:1.5 jenkins-design-language:1.25.3 jira:3.7 jjwt-api:0.11.2-9.c8b45b8bb173 jnr-posix-api:3.1.7-3 job-dsl:1.78.3 job-import-plugin:3.5 job-restrictions:0.8 jquery:1.12.4-1 jquery-detached:1.2.1 jquery3-api:3.6.0-2 jsch:0.1.55.2 junit:1.58 junit-attachments:92.v46b_185115f82 junit-sql-storage:104.vce793afab7b3 kubernetes:3580.v78271e5631dc kubernetes-client-api:5.12.1-187.v577c3e368fb_6 kubernetes-credentials:0.9.0 ldap:2.8 leastload:3.0.0 lockable-resources:2.14 logstash:2.5.0205.vd05825ed46bd mailer:408.vd726a_1130320 material-theme:0.4.1 matrix-auth:3.1 matrix-project:758.v7a_ea_491852f3 maven-plugin:3.18 mercurial:2.16 metrics:4.1.6.1 metrics-graphite:3.0.0 momentjs:1.1.1 monitoring:1.91.0 nodelabelparameter:1.10.3 oauth-credentials:0.5 okhttp-api:4.9.3-105.vb96869f8ac3a pam-auth:1.7 parameterized-scheduler:1.0 parameterized-trigger:2.44 permissive-script-security:0.7 pipeline-build-step:2.16 pipeline-graph-analysis:188.v3a01e7973f2c pipeline-input-step:446.vf27b_0b_83500e pipeline-maven:3.10.0 pipeline-milestone-step:100.v60a_03cd446e1 pipeline-model-api:2.2075.vce74e77b_ce40 pipeline-model-definition:2.2075.vce74e77b_ce40 pipeline-model-extensions:2.2075.vce74e77b_ce40 pipeline-multibranch-defaults:2.1 pipeline-rest-api:2.23 pipeline-stage-step:291.vf0a8a7aeeb50 pipeline-stage-tags-metadata:2.2075.vce74e77b_ce40 pipeline-stage-view:2.23 pipeline-utility-steps:2.12.0 plain-credentials:1.8 plugin-util-api:2.16.0 popper-api:1.16.1-2 popper2-api:2.11.4-1 postbuild-task:1.9 postbuildscript:3.1.0-375.v3db_cd92485e1 prism-api:1.26.0-2 prometheus:2.0.11 pubsub-light:1.16 rebuild:1.33 resource-disposer:0.18 rich-text-publisher-plugin:1.4 role-strategy:3.2.0 run-condition:1.5 run-condition-extras:0.3 saml:2.296.v0016349946db_ scm-api:595.vd5a_df5eb_0e39 script-security:1145.vb_cf6cf6ed960 sectioned-view:1.25 simple-theme-plugin:103.va_161d09c38c7 slack:608.v19e3b_44b_b_9ff snakeyaml-api:1.29.1 solarized-theme:0.1 sse-gateway:1.25 ssh-agent:1.24.1 ssh-credentials:1.19 ssh-slaves:1.806.v2253cedd3295 sshd:3.226.vb_1769a_7fb_b_a_6 structs:308.v852b473a2b8c text-finder:1.18 theme-manager:0.6 timestamper:1.17 token-macro:285.vff7645a_56ff0 trilead-api:1.57.v6e90e07157e1 uno-choice:2.6.1 variant:1.4 versioncolumn:2.2 warnings-ng:9.11.1 windows-slaves:1.8 workflow-aggregator:2.7 workflow-api:1143.v2d42f1e9dea_5 workflow-basic-steps:941.vdfe1b_a_132c64 workflow-cps:2686.v7c37e0578401 workflow-cps-global-lib:564.ve62a_4eb_b_e039 workflow-durable-task-step:1128.v8c259d125340 workflow-job:1174.vdcb_d054cf74a_ workflow-multibranch:711.vdfef37cda_816 workflow-scm-step:2.13 workflow-step-api:622.vb_8e7c15b_c95a_ workflow-support:817.v58126df57338 ws-cleanup:0.41 ```

What Operating System are you using (both controller, and any agents involved in the problem)?

Running on a M1 macbook pro

Reproduction steps

  1. Configure jenkins to use mysql database (tried mysql:latest docker image)
  2. Configure jenkins junit to write to sql database
  3. Load test results to database - I used this jenkinsFile to generate dummy junit file:
    
    import groovy.xml.XmlUtil

// Returns the created file name String createFakeFailureResultFile(String testSuite, String testClassName, String testName, String errorMessage, String stackTrace, String stdout, String stderr) {

testSuite = XmlUtil.escapeControlCharacters(testSuite)
errorMessage = XmlUtil.escapeControlCharacters(errorMessage)
stdout = XmlUtil.escapeControlCharacters(stdout)
stderr = XmlUtil.escapeControlCharacters(stderr)
stackTrace = XmlUtil.escapeControlCharacters(stackTrace)

String text = """<?xml version="1.0" encoding="UTF-8"?>
${stackTrace ?: ""} """ if (stdout) { text += " \n" } if (stderr) { text += " \n" } text += " \n" + "" String fileName = "TEST-${testClassName}.xml" writeFile file: fileName, text: text return fileName } def runCoolCode(int num) { node("jenkins-slave00102") { timestamps { for (int i = 0; i < 50000; i++) { String file = createFakeFailureResultFile("foo", "bar${i}-${num}", "baz", "fff", null, null, null) Long start = System.currentTimeMillis() junit skipPublishingChecks: true, testResults: file echo "Time op ${System.currentTimeMillis() - start}" } } } } def map = ["1": {runCoolCode(1)}, "2": {runCoolCode(2)}, "3": {runCoolCode(3)}, "4": {runCoolCode(4)}] parallel map ``` ### Expected Results I can open the test results page and view test results. ### Actual Results Test results page is stuck loading forever. ### Anything else? When running a low amount of tests, the page loads fine. Seems the issue is with large numbers of tests. image This is the stacktrace that appears for the request in jenkins monitoring plugin: ``` Handling GET /job/foo/4/testReport/ from 172.19.0.1 : Jetty (winstone)-19 TestResult/index.jelly MetaTabulatedResult/body.jelly com.mysql.cj.jdbc.result.ResultSetImpl.realClose(ResultSetImpl.java:1817) com.mysql.cj.jdbc.result.ResultSetImpl.close(ResultSetImpl.java:524) org.apache.commons.dbcp2.DelegatingResultSet.close(DelegatingResultSet.java:196) org.apache.commons.dbcp2.DelegatingResultSet.close(DelegatingResultSet.java:196) io.jenkins.plugins.junit.storage.database.DatabaseTestResultStorage$TestResultStorage.lambda$getAllPackageResults$4(DatabaseTestResultStorage.java:373) io.jenkins.plugins.junit.storage.database.DatabaseTestResultStorage$TestResultStorage$$Lambda$1087/0x0000000101702840.run(Unknown Source) io.jenkins.plugins.junit.storage.database.DatabaseTestResultStorage$TestResultStorage.query(DatabaseTestResultStorage.java:237) io.jenkins.plugins.junit.storage.database.DatabaseTestResultStorage$TestResultStorage.getAllPackageResults(DatabaseTestResultStorage.java:328) hudson.tasks.junit.TestResult.getChildren(TestResult.java:642) hudson.tasks.junit.PackageResult.getSafeName(PackageResult.java:79) hudson.tasks.test.TestObject.getRelativePathFrom(TestObject.java:169) jdk.internal.reflect.GeneratedMethodAccessor574.invoke(Unknown Source) java.base@11.0.14.1/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.base@11.0.14.1/java.lang.reflect.Method.invoke(Method.java:566) org.apache.commons.jexl.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:258) org.apache.commons.jexl.parser.ASTMethod.execute(ASTMethod.java:104) org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83) org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57) org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51) org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80) hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:76) org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:58) org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:101) org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:101) org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161) org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:150) org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:101) org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98) org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:99) org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:172) org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:101) org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91) org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98) org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:122) org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:101) org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91) org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:101) org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:101) org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:101) org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:101) org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:101) org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91) org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:122) org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:122) org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:99) org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:66) org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:55) org.kohsuke.stapler.jelly.ScriptInvoker.execute(ScriptInvoker.java:56) org.kohsuke.stapler.jelly.ScriptInvoker.execute(ScriptInvoker.java:43) org.kohsuke.stapler.Facet.handleIndexRequest(Facet.java:284) org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:105) org.kohsuke.stapler.IndexViewDispatcher.dispatch(IndexViewDispatcher.java:32) org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766) org.kohsuke.stapler.Stapler.invoke(Stapler.java:898) org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:735) org.kohsuke.stapler.Stapler.invoke(Stapler.java:898) org.kohsuke.stapler.MetaClass$9.dispatch(MetaClass.java:475) org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766) org.kohsuke.stapler.Stapler.invoke(Stapler.java:898) org.kohsuke.stapler.MetaClass$9.dispatch(MetaClass.java:475) org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766) org.kohsuke.stapler.Stapler.invoke(Stapler.java:898) org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:289) org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:59) org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766) org.kohsuke.stapler.Stapler.invoke(Stapler.java:898) org.kohsuke.stapler.Stapler.invoke(Stapler.java:694) org.kohsuke.stapler.Stapler.service(Stapler.java:240) javax.servlet.http.HttpServlet.service(HttpServlet.java:790) org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799) org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1626) hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:157) org.jenkinsci.plugins.corsfilter.AccessControlsFilter.doFilter(AccessControlsFilter.java:79) hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154) org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:248) hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154) jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:129) hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154) jenkins.security.ResourceDomainFilter.doFilter(ResourceDomainFilter.java:81) hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154) io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter(JwtAuthenticationFilter.java:60) hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154) com.atlassian.bitbucket.jenkins.internal.applink.oauth.serviceprovider.auth.OAuth1aRequestFilter.doFilter(OAuth1aRequestFilter.java:91) hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154) io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134) hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154) net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:239) net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:215) net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:88) org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:121) hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154) jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:125) hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154) hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:160) org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:160) org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:94) jenkins.security.AcegiSecurityExceptionFilter.doFilter(AcegiSecurityExceptionFilter.java:52) hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:99) hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:54) hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:99) org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:99) org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:99) org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:102) org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:93) hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:99) org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:219) org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:213) hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:99) jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:97) hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:99) org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:63) hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:99) hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:111) hudson.security.HudsonFilter.doFilter(HudsonFilter.java:172) org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:53) org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:86) org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30) org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) jenkins.security.SuspiciousRequestFilter.doFilter(SuspiciousRequestFilter.java:38) org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548) org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578) org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624) org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434) org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501) org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594) org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349) org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) org.eclipse.jetty.server.Server.handle(Server.java:516) org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388) org.eclipse.jetty.server.HttpChannel$$Lambda$597/0x0000000100ffe840.dispatch(Unknown Source) org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633) org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380) org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338) org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315) org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173) org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:386) org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) java.base@11.0.14.1/java.lang.Thread.run(Thread.java:829) ```
timja commented 2 years ago

Thanks for the report

tibco-postman commented 8 months ago

Are there any plans to address this issue? It seems that we are facing the same issue - having a limit for when the load times are sensible at 1000 tests is not really viable.

craigtmoore commented 1 month ago

I think this issue was addressed with #413, where caching was introduced. I tested it using a job that created over 29,000 test results and it had no problem loading it in Jenkins.