Uploaded image for project: 'Bamboo Data Center'
  1. Bamboo Data Center
  2. BAM-22605

Bamboo specs import fails due to snakeyaml-1.32 codepointlimit bug

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Low Low
    • 9.2.6
    • 9.2.4
    • Bamboo Specs
    • None

      Issue Summary

      This is reproducible on Data Center: (yes)

      Steps to Reproduce

      1. Run Bamboo version 9.2.4
      2. Scan the large bamboo specs code (codepointlimit > 3145728) 

      Expected Results

      Bamboo specs scan should be successfully done.

      Actual Results

      Bamboo specs import fails and the below exception is thrown in the atlassian-bamboo.log file:

      2023-09-19 21:46:41,898 INFO [15-BAM::SpecsDetection:pool-19-thread-4] [YamlSpecsImportServiceImpl] Bamboo YAML import failed on incorrect YAMLcom.atlassian.bamboo.specs.yaml.YamlSpecsValidationException: Invalid format of the YAML file: The incoming YAML document exceeds the limit: 3145728 code points.    at com.atlassian.bamboo.configuration.external.yaml.BambooYamlSpecsServiceImpl.splitDocuments(BambooYamlSpecsServiceImpl.java:54) ~[atlassian-bamboo-import-export-9.2.4.jar:?]    at com.atlassian.bamboo.configuration.external.rss.YamlSpecsImportServiceImpl.processSimplifiedYaml(YamlSpecsImportServiceImpl.java:106) ~[atlassian-bamboo-import-export-9.2.4.jar:?]    at com.atlassian.bamboo.configuration.external.RepositoryStoredSpecsServiceImpl.tryProcessYaml(RepositoryStoredSpecsServiceImpl.java:341) ~[atlassian-bamboo-import-export-9.2.4.jar:?]    at com.atlassian.bamboo.configuration.external.RepositoryStoredSpecsServiceImpl.runBambooSpecs(RepositoryStoredSpecsServiceImpl.java:184) ~[atlassian-bamboo-import-export-9.2.4.jar:?]    at com.atlassian.bamboo.configuration.external.RssDetectionServiceImpl.runRssDetection(RssDetectionServiceImpl.java:374) ~[atlassian-bamboo-import-export-9.2.4.jar:?]    at com.atlassian.bamboo.configuration.external.detection.RssDetectionRunnable.run(RssDetectionRunnable.java:42) ~[atlassian-bamboo-import-export-9.2.4.jar:?]    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]    at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]    at com.atlassian.bamboo.utils.BambooRunnables$1.run(BambooRunnables.java:48) ~[atlassian-bamboo-api-9.2.4.jar:?]    at com.atlassian.bamboo.security.ImpersonationHelper.runWith(ImpersonationHelper.java:26) ~[atlassian-bamboo-api-9.2.4.jar:?]    at com.atlassian.bamboo.security.ImpersonationHelper.runWithSystemAuthority(ImpersonationHelper.java:17) ~[atlassian-bamboo-api-9.2.4.jar:?]    at com.atlassian.bamboo.security.ImpersonationHelper$1.run(ImpersonationHelper.java:41) ~[atlassian-bamboo-api-9.2.4.jar:?]    at java.lang.Thread.run(Thread.java:834) ~[?:?]Caused by: org.yaml.snakeyaml.error.YAMLException: The incoming YAML document exceeds the limit: 3145728 code points.    at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:335) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:256) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.parser.ParserImpl$ParseIndentlessSequenceEntryKey.produce(ParserImpl.java:597) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:171) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.comments.CommentEventsCollector$1.peek(CommentEventsCollector.java:57) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.comments.CommentEventsCollector$1.peek(CommentEventsCollector.java:43) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.comments.CommentEventsCollector.collectEvents(CommentEventsCollector.java:136) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.comments.CommentEventsCollector.collectEvents(CommentEventsCollector.java:116) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.composer.Composer.composeScalarNode(Composer.java:221) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:190) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.composer.Composer.composeSequenceNode(Composer.java:252) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:192) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:321) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:312) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:293) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:194) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:321) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:312) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:293) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:194) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.composer.Composer.composeSequenceNode(Composer.java:252) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:192) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:321) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:312) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:293) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:194) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:321) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:312) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:293) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:194) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.composer.Composer.getNode(Composer.java:116) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.constructor.BaseConstructor.getData(BaseConstructor.java:139) ~[snakeyaml-1.32.jar:?]    at org.yaml.snakeyaml.Yaml$1.next(Yaml.java:500) ~[snakeyaml-1.32.jar:?]    at com.atlassian.bamboo.configuration.external.yaml.BambooYamlSpecsServiceImpl.splitDocuments(BambooYamlSpecsServiceImpl.java:46) ~[atlassian-bamboo-import-export-9.2.4.jar:?]    ... 14 more2023-09-19 21:46:41,907 INFO [AtlassianEvent::0-BAM::EVENTS:pool-2-thread-50] [BitbucketServerRssStatusUpdater] Sending RSS notification to Stash (repository: 1cd_hmp_access-control-engine_terraform_infrastructure)2023-09-19 21:46:41,913 INFO [15-BAM::SpecsDetection:pool-19-thread-4] [RssDetectionRunnable] Exception while executing RSS detection for RssDetectionWork[repository=800360628,branch=feat/spin-up-openfga]com.atlassian.bamboo.specs.yaml.YamlSpecsValidationException: Invalid format of the YAML file: The incoming YAML document exceeds the limit: 3145728 code points.    at com.atlassian.bamboo.configuration.external.yaml.BambooYamlSpecsServiceImpl.splitDocuments(BambooYamlSpecsServiceImpl.java:54) ~[atlassian-bamboo-import-export-9.2.4.jar:?]    at com.atlassian.bamboo.configuration.external.rss.YamlSpecsImportServiceImpl.processSimplifiedYaml(YamlSpecsImportServiceImpl.java:106) ~[atlassian-bamboo-import-export-9.2.4.jar:?]    at com.atlassian.bamboo.configuration.external.RepositoryStoredSpecsServiceImpl.tryProcessYaml(RepositoryStoredSpecsServiceImpl.java:341) ~[atlassian-bamboo-import-export-9.2.4.jar:?]    at com.atlassian.bamboo.configuration.external.RepositoryStoredSpecsServiceImpl.runBambooSpecs(RepositoryStoredSpecsServiceImpl.java:184) ~[atlassian-bamboo-import-export-9.2.4.jar:?]    at com.atlassian.bamboo.configuration.external.RssDetectionServiceImpl.runRssDetection(RssDetectionServiceImpl.java:374) ~[atlassian-bamboo-import-export-9.2.4.jar:?]    at com.atlassian.bamboo.configuration.external.detection.RssDetectionRunnable.run(RssDetectionRunnable.java:42) ~[atlassian-bamboo-import-export-9.2.4.jar:?]    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]    at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]    at com.atlassian.bamboo.utils.BambooRunnables$1.run(BambooRunnables.java:48) ~[atlassian-bamboo-api-9.2.4.jar:?]    at com.atlassian.bamboo.security.ImpersonationHelper.runWith(ImpersonationHelper.java:26) ~[atlassian-bamboo-api-9.2.4.jar:?]    at com.atlassian.bamboo.security.ImpersonationHelper.runWithSystemAuthority(ImpersonationHelper.java:17) ~[atlassian-bamboo-api-9.2.4.jar:?]    at com.atlassian.bamboo.security.ImpersonationHelper$1.run(ImpersonationHelper.java:41) ~[atlassian-bamboo-api-9.2.4.jar:?]    at java.lang.Thread.run(Thread.java:834) ~[?:?]Caused by: org.yaml.snakeyaml.error.YAMLException: The incoming YAML document exceeds the limit: 3145728 code points. 

      Workaround

      As of now we suggest to upgrade Bamboo to 9.3 version as snakeyaml has upgrade version (2.0 which has the fix for this issue of snakeyaml) in this.

            [BAM-22605] Bamboo specs import fails due to snakeyaml-1.32 codepointlimit bug

            There are no comments yet on this issue.

              mgardias Marcin Gardias
              e85394e06e5b Khushboo Gupta
              Affected customers:
              0 This affects my team
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: