jenkinsci / junit-plugin

Allows JUnit-format test results to be published
https://plugins.jenkins.io/junit
MIT License
75 stars 334 forks source link

Memory leak related to `resultCache` in TestResultAction #652

Open l-olsem opened 1 week ago

l-olsem commented 1 week ago

Jenkins and plugins versions report

Environment ```text Jenkins: 2.462.1 OS: Linux - 6.8.4-3-pve Java: 21.0.2 - S.A. (OpenJDK 64-Bit Server VM) --- all-changes:1.5 analysis-model-api:12.4.0 antisamy-markup-formatter:162.v0e6ec0fcfcf6 apache-httpcomponents-client-4-api:4.5.14-208.v438351942757 apache-httpcomponents-client-5-api:5.3.1-110.v77252fb_d4da_5 asm-api:9.7-33.v4d23ef79fcc8 authentication-tokens:1.119.v50285141b_7e1 badge:1.13 blueocean:1.27.14 blueocean-bitbucket-pipeline:1.27.14 blueocean-commons:1.27.14 blueocean-config:1.27.14 blueocean-core-js:1.27.14 blueocean-dashboard:1.27.14 blueocean-display-url:2.4.3 blueocean-events:1.27.14 blueocean-git-pipeline:1.27.14 blueocean-github-pipeline:1.27.14 blueocean-i18n:1.27.14 blueocean-jwt:1.27.14 blueocean-personalization:1.27.14 blueocean-pipeline-api-impl:1.27.14 blueocean-pipeline-editor:1.27.14 blueocean-pipeline-scm-api:1.27.14 blueocean-rest:1.27.14 blueocean-rest-impl:1.27.14 blueocean-web:1.27.14 bootstrap5-api:5.3.3-1 bouncycastle-api:2.30.1.78.1-248.ve27176eb_46cb_ branch-api:2.1178.v969d9eb_c728e build-blocker-plugin:166.vc82fc20b_a_ed6 buildresult-trigger:0.18 caffeine-api:3.1.8-133.v17b_1ff2e0599 checks-api:2.2.0 cloudbees-bitbucket-branch-source:888.v8e6d479a_1730 cloudbees-folder:6.942.vb_43318a_156b_2 command-launcher:115.vd8b_301cc15d0 commons-compress-api:1.26.1-2 commons-lang3-api:3.17.0-84.vb_b_938040b_078 commons-text-api:1.12.0-129.v99a_50df237f7 configuration-as-code:1850.va_a_8c31d3158b_ configuration-as-code-groovy:1.1 coverage:1.16.1 credentials:1371.vfee6b_095f0a_3 credentials-binding:681.vf91669a_32e45 cucumber-reports:5.8.3 dark-theme:479.v661b_1b_911c01 dashboard-view:2.517.v776a_b_811a_b_4e data-tables-api:2.1.4-1 display-url-api:2.204.vf6fddd8a_8b_e9 durable-task:568.v8fb_5c57e8417 echarts-api:5.5.1-1 eddsa-api:0.3.0-4.v84c6f0f4969e email-ext:1814.v404722f34263 envinject:2.919.v009a_a_1067cd0 envinject-api:1.199.v3ce31253ed13 extra-columns:1.26 favorite:2.221.v19ca_666b_62f5 flexible-publish:0.16.1 font-awesome-api:6.6.0-1 forensics-api:2.5.0 git:5.4.1 git-client:5.0.0 github:1.40.0 github-api:1.321-468.v6a_9f5f2d5a_7e github-branch-source:1797.v86fdb_4d57d43 gitlab-plugin:1.8.1 groovy-postbuild:228.vcdb_cf7265066 gson-api:2.11.0-41.v019fcf6125dc handy-uri-templates-2-api:2.1.8-30.v7e777411b_148 htmlpublisher:1.36 http_request:1.19 instance-identity:185.v303dc7c645f9 ionicons-api:74.v93d5eb_813d5f jackson2-api:2.17.0-379.v02de8ec9f64c jakarta-activation-api:2.1.3-1 jakarta-mail-api:2.1.3-1 javax-activation-api:1.2.0-7 javax-mail-api:1.6.2-10 jaxb:2.3.9-1 jdk-tool:80.v8a_dee33ed6f0 jenkins-design-language:1.27.14 jersey2-api:2.44-151.v6df377fff741 jjwt-api:0.11.5-112.ve82dfb_224b_a_d job-dsl:1.88 jobConfigHistory:1241.v07634fa_18896 joda-time-api:2.12.7-29.v5a_b_e3a_82269a_ jquery3-api:3.7.1-2 json-api:20240303-41.v94e11e6de726 json-path-api:2.9.0-58.v62e3e85b_a_655 junit:1296.vb_f538b_c88630 mailer:472.vf7c289a_4b_420 matrix-auth:3.2.2 matrix-project:832.va_66e270d2946 metrics:4.2.21-451.vd51df8df52ec mina-sshd-api-common:2.13.2-125.v200281b_61d59 mina-sshd-api-core:2.13.2-125.v200281b_61d59 monitoring:1.99.0 nested-view:1.34 next-executions:327.v136ff959e97b_ oic-auth:4.324.vfd49d010926b_ okhttp-api:4.11.0-172.vda_da_1feeb_c6e parameterized-trigger:806.vf6fff3e28c3e people-view:1.2 pipeline-build-step:540.vb_e8849e1a_b_d8 pipeline-graph-analysis:216.vfd8b_ece330ca_ pipeline-graph-view:332.vb_232ced67fa_9 pipeline-groovy-lib:730.ve57b_34648c63 pipeline-input-step:495.ve9c153f6067b_ pipeline-milestone-step:119.vdfdc43fc3b_9a_ pipeline-model-api:2.2214.vb_b_34b_2ea_9b_83 pipeline-model-definition:2.2214.vb_b_34b_2ea_9b_83 pipeline-model-extensions:2.2214.vb_b_34b_2ea_9b_83 pipeline-rest-api:2.34 pipeline-stage-step:312.v8cd10304c27a_ pipeline-stage-tags-metadata:2.2214.vb_b_34b_2ea_9b_83 pipeline-stage-view:2.34 pipeline-utility-steps:2.17.0 plain-credentials:183.va_de8f1dd5a_2b_ plugin-util-api:4.1.0 postbuildscript:3.3.0-654.v67cf36130d78 prism-api:1.29.0-17 pubsub-light:1.18 rebuild:332.va_1ee476d8f6d run-condition:1.7 scm-api:696.v778d637b_a_762 scoring-load-balancer:120.v5cc1a_77f0c09 script-security:999999-1341.va_2819b_414686-SNAPSHOT (private-a2819b41-dev) sidebar-link:2.4.1 simple-theme-plugin:196.v96d9592f4efa_ snakeyaml-api:2.3-123.v13484c65210a_ sonar:2.17.2 sse-gateway:1.27 ssh-credentials:343.v884f71d78167 ssh-slaves:2.973.v0fa_8c0dea_f9f sshd:3.330.vc866a_8389b_58 structs:338.v848422169819 test-results-analyzer:0.4.1 theme-manager:262.vc57ee4a_eda_5d throttle-concurrents:2.14 timestamper:1.27 token-macro:400.v35420b_922dcb_ trilead-api:2.147.vb_73cc728a_32e variant:60.v7290fc0eb_b_cd view-job-filters:382.vdf2d5e3f02f0 warnings-ng:11.4.1 workflow-aggregator:600.vb_57cdd26fdd7 workflow-api:1336.vee415d95c521 workflow-basic-steps:1058.vcb_fc1e3a_21a_9 workflow-cps:3953.v19f11da_8d2fa_ workflow-durable-task-step:1371.vb_7cec8f3b_95e workflow-job:1436.vfa_244484591f workflow-multibranch:795.ve0cb_1f45ca_9a_ workflow-scm-step:427.v4ca_6512e7df1 workflow-step-api:678.v3ee58b_469476 workflow-support:920.v59f71ce16f04 ```

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

Controller: Ubuntu 20.04.6 LTS Agents: Ubuntu 20.04.6 LTS

Reproduction steps

Having the resultCache of TestResultAction enabled caused a slow memory build up for us. The problem seems to have started 3-4 weeks ago when we probably updated plugins along with a needed restart we had to do.

From then on, in a weeks time, more and more heap was being used until we were exhausting the 60GiB max heap.

Expected Results

Memory usage should not steadily increase over time.

Actual Results

Memory steadily building up until OOM image Note that the smaller hile in the middle was due to an unrelated controller restart.

Sadly I cannot recall (or know where to lookup) what changed around 3,4 weeks ago when the memory build up started to happen. But it looks like a recent change caused this.

Anything else?

Clearing the resultCache (resultCache.clear()) freed up the 'lost' memory image

We disabled the cache via hudson.tasks.junit.TestResultAction.RESULT_CACHE_ENABLED and from now (26/09/2024) on , it looks like the memory build up is not happening anymore.

Are you interested in contributing a fix?

Potentially yes, if can find some time, not an expert in Java though, so I might no be able to identify the source of the leak.

timja commented 1 week ago

cc @mdealer would it be possible for you to take a look please?

mdealer commented 6 days ago

What do you mean by OOM? Just a full heap is not an actual out of memory condition for garbage collected memory management.

Did Jenkins crash? If not, then it works as intended. SoftReferences are freed as soon as memory is required for something else, so test results remain in cache for as long as required. We see similar heap usage on our side too.

image

l-olsem commented 6 days ago

Yes Jenkins controller did indeed crash. The VM the Jenkins controller runs in has 64GiB of RAM. We have set a rather high limit for the heap, it was in the end not the JVM itself that threw a OutOfMemoryError but it was the system OOM killer.

Sep 15 21:33:54 jenkinscontroller-01 systemd[1]: trendiction-jenkins.service: A process of this unit has been killed by the OOM killer.
Sep 15 21:33:56 jenkinscontroller-01 systemd[1]: trendiction-jenkins.service: Main process exited, code=killed, status=9/KILL
Sep 15 21:33:56 jenkinscontroller-01 systemd[1]: trendiction-jenkins.service: Failed with result 'oom-kill'.

I do see the heap usage going up and down during the day for like you mention, but overall there is a tendency towards growing more and more slowly over the week until the machine is OOM.

So maybe it is a mistake to give it that much heap, (there is nothing running next to the jenkins controller inside the VM), so I though 60GiB should be ok. I am going to test with 50GiB of max heap and re-enable the junit cache and see what happens.

mdealer commented 6 days ago

We use OpenJDK 17 on our side plus these JVM args:

-Xms32g
-Xmx64g
-XX:+UseG1GC
-XX:+AlwaysPreTouch
-XX:+UseStringDeduplication
-XX:+ParallelRefProcEnabled
-XX:+ExplicitGCInvokesConcurrent

Also, anecdotally, a while ago we determined that workspace locator crashes our instance in the same way by an OOM. We weren't able to find a correlation with resultCache at that time. Maybe something to try to rule this out by setting a system property: jenkins.branch.WorkspaceLocatorImpl.Mode=jenkins.branch.WorkspaceLocatorImpl.Mode.DISABLED The latter is of temporary nature, I think, as it might stop deleting workspaces on nodes.

Maybe you could get down to what kind of objects are actually piling by looking at a dump?

l-olsem commented 6 days ago

Thank you for sharing the flags and infos. I will check how to integrate them / consolidate them with what we currently have. Currently we do not set an explicit GC, so by default we get G1.

The JVM should be container aware(we are running inside lxc container), but only if the cgroup setup is proper I guess

import java.lang.management.ManagementFactory
def osBean = ManagementFactory.getOperatingSystemMXBean()
println "OS Total Physical Memory: ${osBean.getTotalPhysicalMemorySize() / (1024 * 1024)} MB"

// output: OS Total Physical Memory: 128717.92578125 MB

This is the hosts ram (128GiB), so that might be fishy. Also, java -XshowSettings:system -version shows Memory Limit: Unlimited but not sure if that is relevant.

My current hypothesis is that we are lacking GC pressure and the JVM was happy to trade GC time vs memory usage (since host memory was doing fine)

Shortly before Jenkins was killed by the oom-killer, i manually triggered a heapdump creation and ran it through Eclipse Memory Analyzer using the leak report. Both reports point to the ConcurrentHashMap of the resultCache.

suspect 1

image

suspect 2

image

It is unclear to me how meaningful these reports are given that the JVM might be misjudging the free ram of the system it is running on.

mdealer commented 6 days ago

In the Groovy script console, you could execute this to see how bad the map grows: println hudson.tasks.junit.TestResultAction.resultCache.size()

And you could check what test results are actually there:

hudson.tasks.junit.TestResultAction.resultCache.each { 
  println it.key
}
return

And you could also run this to clear it: hudson.tasks.junit.TestResultAction.resultCache.clear()

Also, check that the cleanup of empty SoftReferences is actually called, this value should change every now and then by itself: println hudson.tasks.junit.TestResultAction.lastCleanupNs

Could help to get closer to the root cause of this.

l-olsem commented 5 days ago

I began to suspect the size of the cache results to be the problem so I changed the config to the following, expecting this to be also be a working solution in our setup

hudson.tasks.junit.TestResultAction.resultCache.clear()
hudson.tasks.junit.TestResultAction.LARGE_RESULT_CACHE_THRESHOLD = 100
hudson.tasks.junit.TestResultAction.RESULT_CACHE_ENABLED = true

However to my surprise after couple of hours I ran this

println("RESULT_CACHE_ENABLED: ${hudson.tasks.junit.TestResultAction.RESULT_CACHE_ENABLED}")
println("LARGE_RESULT_CACHE_THRESHOLD: ${hudson.tasks.junit.TestResultAction.LARGE_RESULT_CACHE_THRESHOLD}")
println("Current resultCache size: ${hudson.tasks.junit.TestResultAction.resultCache.size()}")
println ("lastCleanupNs: ${hudson.tasks.junit.TestResultAction.lastCleanupNs}")
println("diff: ${System.nanoTime() - hudson.tasks.junit.TestResultAction.lastCleanupNs}")

Sample output

RESULT_CACHE_ENABLED: true
LARGE_RESULT_CACHE_THRESHOLD: 100
Current resultCache size: 375
lastCleanupNs: 115422569121994
diff: 2220287921

The surprise is that LARGE_RESULT_CACHE_THRESHOLD is not respect apparently.

Using a job where I know that rarely anybody is opening the testReport page, I can confirm that when i open the testReport then lastCleanupNs updates to a new value and the resultCache size increases by one. I was able to repeat this a couple of times using different builds. Refreshing the page did not make the counter increase.

Now the line if (v.get() == null) { looks suspicious to me. It does not seem to 'ever' be true for us. I do not see the reason for this null check beyond wanting to remove the key.

Is the code that should make resultCache respect LARGE_RESULT_CACHE_THRESHOLD missing or is it expected for the TestResult reference to become null at some point?

The list of keys looks normal to me (387 at the time of printing me) ``` /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/258/junitResult.xml /home/jenkins/data/jobs/AILlmLlama2GpuTest_mr/builds/14/junitResult.xml /home/jenkins/data/jobs/TWClientSide-UnitTest_mr/builds/13/junitResult.xml /home/jenkins/data/jobs/AIAbstractSummaryGpuTest_master/builds/42/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/851/junitResult.xml /home/jenkins/data/jobs/AILlmLlama2GpuTest_mr/builds/1/junitResult.xml /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/255/junitResult.xml /home/jenkins/data/jobs/TWAdmin-LiveTest_payment-20240610/builds/40/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/854/junitResult.xml /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/252/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/149/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/143/junitResult.xml /home/jenkins/data/jobs/AITextClassificationSentimentGpuTest_master/builds/38/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_master/builds/275/junitResult.xml /home/jenkins/data/jobs/PolyLiveTest_master/builds/46/junitResult.xml /home/jenkins/data/jobs/TWEnd2End-ExportTest_master/builds/304/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_master/builds/272/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/140/junitResult.xml /home/jenkins/data/jobs/Talkwalkerprocessing-IntegrationTest_master/builds/275/junitResult.xml /home/jenkins/data/jobs/AIEmbeddingsMinilmGpuTest_master/builds/40/junitResult.xml /home/jenkins/data/jobs/TWEnd2End-NavigationTest_master/builds/627/junitResult.xml /home/jenkins/data/jobs/AITextAnnotationNerAnnotationTest_master/builds/45/junitResult.xml /home/jenkins/data/jobs/TWEnd2End-NavigationTest_master/builds/624/junitResult.xml /home/jenkins/data/jobs/AIEmbeddingsParaphraseGpuTest_master/builds/42/junitResult.xml /home/jenkins/data/jobs/TWAdmin-ReleaseTest_payment-20240610/builds/86/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/536/junitResult.xml /home/jenkins/data/jobs/AlfredProd-LiveTest_master/builds/672/junitResult.xml /home/jenkins/data/jobs/AITextClusteringSbertHdbscanTest_mr/builds/1/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/860/junitResult.xml /home/jenkins/data/jobs/AILlmLlama2GpuTest_master/builds/32/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/863/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/866/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/137/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/134/junitResult.xml /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/267/junitResult.xml /home/jenkins/data/jobs/OracleEnd2End-Test_master/builds/215/junitResult.xml /home/jenkins/data/jobs/AITimeseriesForecast90dForecastTest_master/builds/41/junitResult.xml /home/jenkins/data/jobs/TWSecurityTest_master/builds/288/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/131/junitResult.xml /home/jenkins/data/jobs/CaffeGpuTestAmpereUbuntu20_master/builds/218/junitResult.xml /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/270/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/848/junitResult.xml /home/jenkins/data/jobs/Socialsitesetup-IntegrationTest_master/builds/275/junitResult.xml /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/273/junitResult.xml /home/jenkins/data/jobs/Authserver-IntegrationTest_master/builds/247/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/857/junitResult.xml /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/261/junitResult.xml /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/264/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/869/junitResult.xml /home/jenkins/data/jobs/Complianceservice-IntegrationTest_mr/builds/6/junitResult.xml /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/276/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/872/junitResult.xml /home/jenkins/data/jobs/AILlmInsightGpuTest_master/builds/34/junitResult.xml /home/jenkins/data/jobs/DeployscriptsTestQuick_master/builds/66/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/125/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/875/junitResult.xml /home/jenkins/data/jobs/Authserver-IntegrationTest_master/builds/274/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/269/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/521/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/266/junitResult.xml /home/jenkins/data/jobs/PolyIntegrationTest_master/builds/223/junitResult.xml /home/jenkins/data/jobs/Authserver-LiveTest_mr/builds/4/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/128/junitResult.xml /home/jenkins/data/jobs/Socialsitesetup-LiveTest_mr/builds/8/junitResult.xml /home/jenkins/data/jobs/AILlmLlama2GpuTest_master/builds/44/junitResult.xml /home/jenkins/data/jobs/TwRiddler-IntegrationTest_master/builds/275/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/504/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_master/builds/251/junitResult.xml /home/jenkins/data/jobs/TWAdmin-LiveTest_master/builds/42/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_master/builds/254/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/260/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/263/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/501/junitResult.xml /home/jenkins/data/jobs/AILlmSummaryGpuAB_custom/builds/113/junitResult.xml /home/jenkins/data/jobs/AlfredBeta-LiveTest_master/builds/667/junitResult.xml /home/jenkins/data/jobs/Acme-IntegrationTest_master/builds/278/junitResult.xml /home/jenkins/data/jobs/Acme-IntegrationTest_master/builds/275/junitResult.xml /home/jenkins/data/jobs/TWEnd2End-IntegrationTest_master/builds/358/junitResult.xml /home/jenkins/data/jobs/PolyIntegrationTest_mr/builds/30/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_master/builds/257/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/518/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/527/junitResult.xml /home/jenkins/data/jobs/AITextClassificationTargetedSentimentGpuTest_master/builds/38/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/512/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/524/junitResult.xml /home/jenkins/data/jobs/PolyIntegrationTest_master/builds/273/junitResult.xml /home/jenkins/data/jobs/Talkwalker-IntegrationTest_master/builds/278/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/530/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/533/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/257/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_master/builds/260/junitResult.xml /home/jenkins/data/jobs/TWAdmin-LiveTest_payment-20240610/builds/14/junitResult.xml /home/jenkins/data/jobs/Acme-IntegrationTest_mr/builds/6/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/278/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_master/builds/266/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_master/builds/269/junitResult.xml /home/jenkins/data/jobs/DataBackend-IntegrationTest_master/builds/276/junitResult.xml /home/jenkins/data/jobs/AIChatTest_mr/builds/25/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_master/builds/263/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/254/junitResult.xml /home/jenkins/data/jobs/Alfred-UnitTest_master/builds/211/junitResult.xml /home/jenkins/data/jobs/IntegrationTest_mr/builds/160/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/272/junitResult.xml /home/jenkins/data/jobs/PenitentiaryTest_master/builds/46/junitResult.xml /home/jenkins/data/jobs/AITextClassificationLlmZeroshotGpuTest_mr/builds/6/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/275/junitResult.xml /home/jenkins/data/jobs/OracleEnd2End-Test_master/builds/262/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/256/junitResult.xml /home/jenkins/data/jobs/Alfred-UnitTest_master/builds/210/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/253/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/259/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/250/junitResult.xml /home/jenkins/data/jobs/Alfred-UnitTest_master/builds/213/junitResult.xml /home/jenkins/data/jobs/Talkwalker-IntegrationTest_master/builds/277/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/528/junitResult.xml /home/jenkins/data/jobs/TWSecurityTest_master/builds/290/junitResult.xml /home/jenkins/data/jobs/Authserver-LiveTest_master/builds/46/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/503/junitResult.xml /home/jenkins/data/jobs/Alfred-UnitTest_mr/builds/2/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/506/junitResult.xml /home/jenkins/data/jobs/Socialsitesetup-IntegrationTest_master/builds/277/junitResult.xml /home/jenkins/data/jobs/TwRiddler-IntegrationTest_master/builds/276/junitResult.xml /home/jenkins/data/jobs/TWSecurityTest_master/builds/287/junitResult.xml /home/jenkins/data/jobs/DataBackend-IntegrationTest_mr/builds/74/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/272/junitResult.xml /home/jenkins/data/jobs/AlfredBeta-LiveTest_master/builds/673/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/268/junitResult.xml /home/jenkins/data/jobs/TWEnd2End-HootsuiteIntegrationTest_master/builds/309/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/151/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/247/junitResult.xml /home/jenkins/data/jobs/TWEnd2End-NavigationTest_mr/builds/23/junitResult.xml /home/jenkins/data/jobs/TWEnd2End-NavigationTest_mr/builds/20/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/262/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/265/junitResult.xml /home/jenkins/data/jobs/AlfredBeta-LiveTest_master/builds/670/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/516/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/513/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/525/junitResult.xml /home/jenkins/data/jobs/Talkwalker-IntegrationTest_master/builds/280/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/537/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/522/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/534/junitResult.xml /home/jenkins/data/jobs/PolyIntegrationTest_master/builds/274/junitResult.xml /home/jenkins/data/jobs/FrontendInfra-UnitTest_master/builds/214/junitResult.xml /home/jenkins/data/jobs/FrontendInfra-UnitTest_master/builds/211/junitResult.xml /home/jenkins/data/jobs/Authserver-IntegrationTest_mr/builds/6/junitResult.xml /home/jenkins/data/jobs/Talkwalkerapi-IntegrationTest_mr/builds/17/junitResult.xml /home/jenkins/data/jobs/AITextAnnotationNerAnnotationWikidataGpuTest_mr/builds/5/junitResult.xml /home/jenkins/data/jobs/Talkwalkerprocessing-IntegrationTest_mr/builds/1/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_master/builds/262/junitResult.xml /home/jenkins/data/jobs/AISpeechToTextSpeechtotextGpuTest_master/builds/38/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_master/builds/268/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_master/builds/265/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/858/junitResult.xml /home/jenkins/data/jobs/TWEnd2End-NavigationTest_master/builds/625/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/861/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/864/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_master/builds/271/junitResult.xml /home/jenkins/data/jobs/Talkwalker-IntegrationTest_mr/builds/12/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_master/builds/274/junitResult.xml /home/jenkins/data/jobs/OracleEnd2End-Test_mr/builds/2/junitResult.xml /home/jenkins/data/jobs/AlfredProd-LiveTest_master/builds/673/junitResult.xml /home/jenkins/data/jobs/AlfredProd-LiveTest_master/builds/670/junitResult.xml /home/jenkins/data/jobs/HootsuiteIntegration-LiveTest_master/builds/1834/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_master/builds/256/junitResult.xml /home/jenkins/data/jobs/Acme-IntegrationTest_master/builds/274/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_master/builds/253/junitResult.xml /home/jenkins/data/jobs/HootsuiteIntegration-LiveTest_master/builds/1837/junitResult.xml /home/jenkins/data/jobs/Acme-IntegrationTest_master/builds/277/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_master/builds/259/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/849/junitResult.xml /home/jenkins/data/jobs/TWClientSide-UnitTest_master/builds/714/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_mr/builds/13/junitResult.xml /home/jenkins/data/jobs/Complianceservice-IntegrationTest_master/builds/275/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/873/junitResult.xml /home/jenkins/data/jobs/PolyIntegrationTest_mr/builds/28/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/870/junitResult.xml /home/jenkins/data/jobs/PolyIntegrationTest_mr/builds/25/junitResult.xml /home/jenkins/data/jobs/CaffeGpuTest_mr/builds/3/junitResult.xml /home/jenkins/data/jobs/TWEnd2End-IntegrationTest_master/builds/356/junitResult.xml /home/jenkins/data/jobs/TWEnd2End-IntegrationTest_master/builds/353/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/867/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/852/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/855/junitResult.xml /home/jenkins/data/jobs/CustomTask-Live_any/builds/11/junitResult.xml /home/jenkins/data/jobs/AIImageAnnotationOcrAnnotationGpuTest_master/builds/38/junitResult.xml /home/jenkins/data/jobs/TWEnd2End-IntegrationTest_mr/builds/31/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/273/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/276/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/517/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/270/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_mr/builds/2/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/511/junitResult.xml /home/jenkins/data/jobs/TWEnd2End-IntegrationTest_master/builds/357/junitResult.xml /home/jenkins/data/jobs/AITextClassificationLlmZeroshotGpuTest_master/builds/38/junitResult.xml /home/jenkins/data/jobs/DataBackend-IntegrationTest_master/builds/274/junitResult.xml /home/jenkins/data/jobs/TWEnd2End-HootsuiteIntegrationTest_master/builds/307/junitResult.xml /home/jenkins/data/jobs/AITextAnnotationNerAnnotationWikidataGpuTest_master/builds/41/junitResult.xml /home/jenkins/data/jobs/TWEnd2End-IntegrationTest_mr/builds/30/junitResult.xml /home/jenkins/data/jobs/FrontendInfra-UnitTest_master/builds/213/junitResult.xml /home/jenkins/data/jobs/PolyIntegrationTest_master/builds/275/junitResult.xml /home/jenkins/data/jobs/TWEnd2End-ExportTest_mr/builds/36/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/121/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/248/junitResult.xml /home/jenkins/data/jobs/Authserver-LiveTest_mr/builds/2/junitResult.xml /home/jenkins/data/jobs/Acme-IntegrationTest_master/builds/273/junitResult.xml /home/jenkins/data/jobs/DeployscriptsTestQuick_master/builds/50/junitResult.xml /home/jenkins/data/jobs/AILlmInsightGpuTest_master/builds/41/junitResult.xml /home/jenkins/data/jobs/AITextTransformationEmailExtractorTest_master/builds/42/junitResult.xml /home/jenkins/data/jobs/AlfredBeta-LiveTest_master/builds/674/junitResult.xml /home/jenkins/data/jobs/AlfredBeta-LiveTest_master/builds/671/junitResult.xml /home/jenkins/data/jobs/Authserver-IntegrationTest_master/builds/275/junitResult.xml /home/jenkins/data/jobs/Acme-IntegrationTest_master/builds/276/junitResult.xml /home/jenkins/data/jobs/Talkwalkerapi-IntegrationTest_master/builds/275/junitResult.xml /home/jenkins/data/jobs/IntegrationTest_mr/builds/164/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/264/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/261/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/267/junitResult.xml /home/jenkins/data/jobs/AILlmInsightGpuTest_mr/builds/19/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/124/junitResult.xml /home/jenkins/data/jobs/AIEngagementForecastEngagementForecastTest_master/builds/45/junitResult.xml /home/jenkins/data/jobs/AITextAnnotationAspectExtractionGpuTest_master/builds/38/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/127/junitResult.xml /home/jenkins/data/jobs/Acme-IntegrationTest_mr/builds/7/junitResult.xml /home/jenkins/data/jobs/PolyIntegrationTest_mr/builds/26/junitResult.xml /home/jenkins/data/jobs/PolyIntegrationTest_mr/builds/29/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/258/junitResult.xml /home/jenkins/data/jobs/DataBackend-IntegrationTest_master/builds/268/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/255/junitResult.xml /home/jenkins/data/jobs/CaffeGpuTestPascalUbuntu20_master/builds/172/junitResult.xml /home/jenkins/data/jobs/AIChatTest_mr/builds/24/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/252/junitResult.xml /home/jenkins/data/jobs/Alfred-UnitTest_master/builds/212/junitResult.xml /home/jenkins/data/jobs/Complianceservice-IntegrationTest_master/builds/274/junitResult.xml /home/jenkins/data/jobs/Socialsitesetup-IntegrationTest_mr/builds/8/junitResult.xml /home/jenkins/data/jobs/Socialsitesetup-IntegrationTest_mr/builds/10/junitResult.xml /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/262/junitResult.xml /home/jenkins/data/jobs/NifiProcessorsTest_master/builds/1/junitResult.xml /home/jenkins/data/jobs/TWAdmin-ReleaseTest_payment-20240610/builds/79/junitResult.xml /home/jenkins/data/jobs/TWClientSide-UnitTest_master/builds/712/junitResult.xml /home/jenkins/data/jobs/Socialsitesetup-IntegrationTest_master/builds/276/junitResult.xml /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/265/junitResult.xml /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/268/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/274/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/271/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_mr/builds/14/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/136/junitResult.xml /home/jenkins/data/jobs/PolyLiveTest_mr/builds/8/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/133/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/145/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/139/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/142/junitResult.xml /home/jenkins/data/jobs/AIEmbeddingsParaphraseGpuTest_mr/builds/1/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/148/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/266/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/251/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/850/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/269/junitResult.xml /home/jenkins/data/jobs/Socialsitesetup-LiveTest_master/builds/46/junitResult.xml /home/jenkins/data/jobs/Socialsitesetup-LiveTest_master/builds/43/junitResult.xml /home/jenkins/data/jobs/Talkwalkerapi-IntegrationTest_master/builds/272/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/263/junitResult.xml /home/jenkins/data/jobs/TWAdminPreMerge_mr/builds/98/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/853/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/260/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/254/junitResult.xml /home/jenkins/data/jobs/HootsuiteIntegration-LiveTest_master/builds/1830/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/847/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/257/junitResult.xml /home/jenkins/data/jobs/HootsuiteIntegration-LiveTest_master/builds/1836/junitResult.xml /home/jenkins/data/jobs/TWEnd2End-NavigationTest_master/builds/626/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/859/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/856/junitResult.xml /home/jenkins/data/jobs/TWEnd2End-ExportTest_master/builds/305/junitResult.xml /home/jenkins/data/jobs/Talkwalkerprocessing-IntegrationTest_master/builds/276/junitResult.xml /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/250/junitResult.xml /home/jenkins/data/jobs/Talkwalkerprocessing-IntegrationTest_master/builds/273/junitResult.xml /home/jenkins/data/jobs/CaffeGpuTest_master/builds/169/junitResult.xml /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/256/junitResult.xml /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/253/junitResult.xml /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/259/junitResult.xml /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/271/junitResult.xml /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/274/junitResult.xml /home/jenkins/data/jobs/AlfredProd-LiveTest_master/builds/671/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/868/junitResult.xml /home/jenkins/data/jobs/HootsuiteIntegration-LiveTest_master/builds/1832/junitResult.xml /home/jenkins/data/jobs/Talkwalkerapi-IntegrationTest_master/builds/273/junitResult.xml /home/jenkins/data/jobs/CustomTask-Live_any/builds/15/junitResult.xml /home/jenkins/data/jobs/AlfredProd-LiveTest_master/builds/674/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/265/junitResult.xml /home/jenkins/data/jobs/CustomTask-Normal_any/builds/4/junitResult.xml /home/jenkins/data/jobs/AIChatTest_mr/builds/22/junitResult.xml /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/266/junitResult.xml /home/jenkins/data/jobs/TWClientSide-UnitTest_master/builds/713/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/253/junitResult.xml /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/269/junitResult.xml /home/jenkins/data/jobs/Complianceservice-IntegrationTest_master/builds/276/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/874/junitResult.xml /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/275/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/871/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/259/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/865/junitResult.xml /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/272/junitResult.xml /home/jenkins/data/jobs/TestScout_master/builds/862/junitResult.xml /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/260/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/256/junitResult.xml /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/263/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/262/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/268/junitResult.xml /home/jenkins/data/jobs/TWEnd2End-IntegrationTest_mr/builds/32/junitResult.xml /home/jenkins/data/jobs/TWEnd2End-ExportTest_mr/builds/31/junitResult.xml /home/jenkins/data/jobs/LiveTest_mr/builds/59/junitResult.xml /home/jenkins/data/jobs/TWClientSide-UnitTest_master/builds/706/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_master/builds/264/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_master/builds/276/junitResult.xml /home/jenkins/data/jobs/HootsuiteIntegration-LiveTest_master/builds/1838/junitResult.xml /home/jenkins/data/jobs/HootsuiteIntegration-LiveTest_master/builds/1835/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_master/builds/273/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_master/builds/258/junitResult.xml /home/jenkins/data/jobs/TWEnd2End-ExportTest_master/builds/306/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_master/builds/270/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_master/builds/267/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_master/builds/261/junitResult.xml /home/jenkins/data/jobs/Talkwalkerapi-IntegrationTest_mr/builds/18/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_master/builds/252/junitResult.xml /home/jenkins/data/jobs/Miriv5-IntegrationTest_master/builds/255/junitResult.xml /home/jenkins/data/jobs/TWEnd2End-NavigationTest_mr/builds/21/junitResult.xml /home/jenkins/data/jobs/Talkwalker-IntegrationTest_mr/builds/7/junitResult.xml /home/jenkins/data/jobs/DeployscriptsTestHeavy_master/builds/40/junitResult.xml /home/jenkins/data/jobs/AlfredPreMerge_mr/builds/4/junitResult.xml /home/jenkins/data/jobs/DataBackend-IntegrationTest_mr/builds/73/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/535/junitResult.xml /home/jenkins/data/jobs/Talkwalkerprocessing-IntegrationTest_master/builds/277/junitResult.xml /home/jenkins/data/jobs/AITextClassificationEmotionGpuTest_master/builds/38/junitResult.xml /home/jenkins/data/jobs/AITextClusteringSbertHdbscanTest_master/builds/37/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/249/junitResult.xml /home/jenkins/data/jobs/IntegrationTest_mr/builds/153/junitResult.xml /home/jenkins/data/jobs/DataBackend-IntegrationTest_master/builds/275/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/277/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/271/junitResult.xml /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/257/junitResult.xml /home/jenkins/data/jobs/TalkwalkerHootsuite-IntegrationTest_master/builds/274/junitResult.xml /home/jenkins/data/jobs/IntegrationTest_mr/builds/165/junitResult.xml /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/254/junitResult.xml /home/jenkins/data/jobs/TWAdmin-IntegrationTest_master/builds/251/junitResult.xml /home/jenkins/data/jobs/TWEnd2End-NavigationTest_master/builds/512/junitResult.xml /home/jenkins/data/jobs/AISpeechToTextSpeechtotextGpuTest_mr/builds/1/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/502/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/144/junitResult.xml /home/jenkins/data/jobs/TWAdmin-LiveTest_master/builds/16/junitResult.xml /home/jenkins/data/jobs/TWEnd2End-HootsuiteIntegrationTest_mr/builds/1/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/526/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/523/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/258/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/255/junitResult.xml /home/jenkins/data/jobs/DeployscriptsTestHeavy_any/builds/4/junitResult.xml /home/jenkins/data/jobs/Socialsitesetup-LiveTest_mr/builds/7/junitResult.xml /home/jenkins/data/jobs/Talkwalker-IntegrationTest_master/builds/264/junitResult.xml /home/jenkins/data/jobs/WIPVenkatTalkwalker-IntegrationTest_master/builds/1/junitResult.xml /home/jenkins/data/jobs/Talkwalker-IntegrationTest_master/builds/279/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/129/junitResult.xml /home/jenkins/data/jobs/TWSecurityTest_master/builds/286/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/252/junitResult.xml /home/jenkins/data/jobs/DeployscriptsTestHeavy_master/builds/25/junitResult.xml /home/jenkins/data/jobs/TWClientSide-UnitTest_mr/builds/11/junitResult.xml /home/jenkins/data/jobs/TWEnd2End-HootsuiteIntegrationTest_master/builds/308/junitResult.xml /home/jenkins/data/jobs/TWSecurityTest_master/builds/289/junitResult.xml /home/jenkins/data/jobs/Authserver-IntegrationTest_master/builds/273/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/261/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/520/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/267/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/264/junitResult.xml /home/jenkins/data/jobs/TWHootsuitePreMerge_mr/builds/1/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/138/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/123/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/150/junitResult.xml /home/jenkins/data/jobs/Search-IntegrationTest_master/builds/270/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/508/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/126/junitResult.xml /home/jenkins/data/jobs/AlfredBeta-LiveTest_master/builds/672/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/147/junitResult.xml /home/jenkins/data/jobs/AIChatTest_master/builds/45/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/141/junitResult.xml /home/jenkins/data/jobs/TalkwalkerPreMerge_mr/builds/505/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/135/junitResult.xml /home/jenkins/data/jobs/SearchPreMerge_mr/builds/132/junitResult.xml /home/jenkins/data/jobs/AILlmInsightGpuTest_mr/builds/18/junitResult.xml ```
mdealer commented 5 days ago

SoftReferences are nullified by the GC when it frees the contents. The GC decides this on its own, there is no hard limit. If the GC never does that for any reason, then the cache keeps growing.

LARGE_RESULT_CACHE_THRESHOLD is not a cleanup of the cache, but a catch-up with GC operations, there is no hard limit here, just the available memory and GC. The catch-up is pointless if the map is small enough (the taken memory being less of a burden than iterating through the map).

So, we need to find out why is GC not doing its job for you. Can you reduce the memory further to see what changes in behavior?

EDIT: In the meantime I will check how to extend the cleanup procedure, because in theory, as long as nothing touches the test results, the map could be growing (there is a put operation without cleanup). Though, your findings contradict this, because by disabling resultCache the put is not skipped.

l-olsem commented 5 days ago

I am not sure if the disabling of the resultCache for sure fixed it, i would need to wait a couple of days to 100% confirm that.

EDIT: What I know is that resultCache.clear() gave me back the memory.

I tried a System.gc() just now, it did not help, the resultCache size remained the same, I will take another heapdump to try to figure out what is holding on to the TestResult.

Note that since i opened the ticket i have not changed any JVM settings, I currently only have prod available to test :-)

mdealer commented 5 days ago

Try this to check if it is full of nulls or not:

hudson.tasks.junit.TestResultAction.resultCache.each { 
  println it.value.get()
}
return
l-olsem commented 5 days ago

No, not a single null, getting a long list of the kind java.lang.ref.SoftReference@25a64b02

mdealer commented 5 days ago

I forgot .get() at the end...

l-olsem commented 5 days ago

Still not a single null, lots of the kind hudson.tasks.junit.TestResult@5aeee99c

mdealer commented 5 days ago

Observe this for some time and report back.

l-olsem commented 5 days ago

When i go to a specific entry of TestResult in the heapdump and list all incoming references i get this image

Which maybe looks normal, I do not know.

What confuses me is what i see when i open resultCache image

I am not sure how to interpret the mention of class TestResultAction after opening the dropdown

mdealer commented 5 days ago

The reference from EntrySetView could be the .forEach that cleans up the nulls, but all of these should be SoftReference, so unless there is a bug in this specific constellation with this GC, not sure what to try other than the VM options.

We run tests until the disk runs out of space on our side, need to dig a bit more on your setup. Next to try would be the JVM args and system props plus observations.

Also, is it possible that we run into https://bugs.openjdk.org/browse/JDK-8192647 by a coincidence like those workspace locator threads?