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

            Alexey Chystoprudov made changes -
            Resolution New: Fixed [ 1 ]
            Status Original: Waiting for Release [ 12075 ] New: Closed [ 6 ]
            Alexey Chystoprudov made changes -
            Status Original: In Progress [ 3 ] New: Waiting for Release [ 12075 ]
            Marcin Gardias made changes -
            Fix Version/s New: 9.2.6 [ 106198 ]
            Marcin Gardias made changes -
            Assignee New: Marcin Gardias [ mgardias ]
            Marcin Gardias made changes -
            Status Original: Needs Triage [ 10030 ] New: In Progress [ 3 ]
            SET Analytics Bot made changes -
            UIS New: 1
            SET Analytics Bot made changes -
            Support reference count New: 1
            Jyothi Charupalli made changes -
            Remote Link New: This issue links to "Page (Confluence)" [ 815754 ]
            Khushboo Gupta created issue -

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

                Created:
                Updated:
                Resolved: