ci-jenkins-pipelines
ci-jenkins-pipelines copied to clipboard
Tests fail with error: incoming YAML document exceeds the limit
What are you trying to do? Run Adoptium tests that appear to return YAML files that require parsing.
Expected behaviour: These YAML files should be parsed without error.
Observed behaviour:
[2025-02-19T21:21:01.805Z] Rebuild_Same_JDK_Reproducibility_Test_Mac_0_FAILED
[2025-02-19T21:21:01.805Z] duration_ms: 1338313
[2025-02-19T21:21:01.805Z] ]: The incoming YAML document exceeds the limit: 3145728 code points.
Other tests are also affected. Examples: https://ci.adoptium.net/job/Test_openjdk17_hs_sanity.external_x86-64_linux/44/ https://ci.adoptium.net/job/Test_openjdk21_hs_special.system_aarch64_mac/10/
Any other comments:
Here is a chunk of the stack from the error:
[2025-02-19T21:21:01.805Z] at PluginClassLoader for tap//org.tap4j.plugin.TapPublisher.perform(TapPublisher.java:312)
[2025-02-19T21:21:01.805Z] at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123)
[2025-02-19T21:21:01.805Z] at PluginClassLoader for workflow-basic-steps//org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:101)
[2025-02-19T21:21:01.805Z] at PluginClassLoader for workflow-basic-steps//org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:71)
[2025-02-19T21:21:01.805Z] at PluginClassLoader for workflow-step-api//org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
[2025-02-19T21:21:01.805Z] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
[2025-02-19T21:21:01.805Z] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[2025-02-19T21:21:01.805Z] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[2025-02-19T21:21:01.805Z] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[2025-02-19T21:21:01.805Z] at java.base/java.lang.Thread.run(Thread.java:840)
[2025-02-19T21:21:01.815Z] Caused by: org.tap4j.parser.ParserException: Error parsing YAML [ output:
Based on this, I think that a jenkins plugin is using a tap4j YAML parser, which uses snakeyaml to parse a yaml file which is using the default limit on code points.
This forum message here suggests that it is possible to expand the limits of the the Yaml class by using LoaderOptions, which I think needs to be added here.
Will discuss with community.
FYI @sophia-guo Just as we have turned off pushing the entire console output of openjdk test failures to the TAP file, we may need to adjust it for this one, OR alter the reproducible shell script that is being run to be less verbose (dump to a file, which gets included in the attached test_outpup.zip artifact).
Reproducing output issue see https://github.com/adoptium/temurin-build/pull/4144
external one see https://github.com/adoptium/TKG/pull/678
External test has been explicitely set diagnosticLevel='noDetails' due to it's output issue with TAP plugin. Tapfile should not turn it on.