Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-71966

Blue ocean and kubernetes stack trace with Jenkins 2.387.3 and snakeyaml 2.2

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: Minor Minor
    • None

      When I install the suggested plugins from the Jenkins 2.387.3 setup wizard and then install the blue ocean plugin, Jenkins reports a stack trace on startup. The stack trace is:

      2023-09-05 00:56:56.020+0000 [id=35]    WARNING hudson.ExtensionFinder$Sezpoz#scout: Failed to scout io.jenkins.blueocean.service.embedded.analytics.BrowserAndOperatingSystemAnalyticsProperties
      java.lang.NoSuchMethodError: org.yaml.snakeyaml.constructor.SafeConstructor: method 'void <init>()' not found
              at ua_parser.Parser.initialize(Parser.java:80)
              at ua_parser.Parser.<init>(Parser.java:45)
              at io.jenkins.blueocean.service.embedded.analytics.BrowserAndOperatingSystemAnalyticsProperties.<clinit>(BrowserAndOperatingSystemAnalyticsProperties.java:19)
              at java.base/java.lang.Class.forName0(Native Method)
              at java.base/java.lang.Class.forName(Class.java:398)
              at hudson.ExtensionFinder$Sezpoz.scout(ExtensionFinder.java:769)
              at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:353)
              at hudson.ExtensionList.load(ExtensionList.java:384)
              at hudson.ExtensionList.ensureLoaded(ExtensionList.java:320)
              at hudson.ExtensionList.getComponents(ExtensionList.java:184)
              at jenkins.model.Jenkins$6.onInitMilestoneAttained(Jenkins.java:1196)
              at jenkins.InitReactorRunner$1.onAttained(InitReactorRunner.java:88)
              at org.jvnet.hudson.reactor.ReactorListener$Aggregator.lambda$onAttained$3(ReactorListener.java:108)
              at org.jvnet.hudson.reactor.ReactorListener$Aggregator.run(ReactorListener.java:116)
              at org.jvnet.hudson.reactor.ReactorListener$Aggregator.onAttained(ReactorListener.java:108)
              at org.jvnet.hudson.reactor.Reactor$1.run(Reactor.java:182)at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:120)
              at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
              at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
              at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
              at java.base/java.lang.Thread.run(Thread.java:829)
      

      A stack trace is expected from the kubernetes 4007.v633279962016 plugin when installed with Jenkins 2.387.3 and snakeyaml api plugin 2.2-111.vc6598e30cc65. I've not been able to create a scenario with the kubernetes plugin, but the automated tests show the following stack trace:

      java.lang.NoSuchMethodError: org.yaml.snakeyaml.constructor.SafeConstructor: method 'void <init>()' not found
      	at io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:256)
      	at io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:387)
      	at io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:353)
      	at io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:337)
      	at io.fabric8.kubernetes.client.dsl.internal.OperationSupport.unmarshal(OperationSupport.java:753)
      	at io.fabric8.kubernetes.client.dsl.internal.BaseOperation.load(BaseOperation.java:261)
      	at io.fabric8.kubernetes.client.dsl.internal.BaseOperation.load(BaseOperation.java:93)
      	at org.csanchez.jenkins.plugins.kubernetes.PodTemplateUtils.parseFromYaml(PodTemplateUtils.java:610)
      	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
      	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
      	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
      	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
      	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
      	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
      	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
      	at org.csanchez.jenkins.plugins.kubernetes.pod.yaml.Merge.merge(Merge.java:25)
      	at org.csanchez.jenkins.plugins.kubernetes.PodTemplate.getYamlsPod(PodTemplate.java:201)
      	at org.csanchez.jenkins.plugins.kubernetes.PodTemplateBuilder.build(PodTemplateBuilder.java:297)
      	at org.csanchez.jenkins.plugins.kubernetes.PodTemplateBuilderTest.yamlOverrideSecurityContext(PodTemplateBuilderTest.java:817)
      	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
      	at org.mockito.internal.junit.JUnitSessionStore$1.evaluateSafely(JUnitSessionStore.java:55)
      	at org.mockito.internal.junit.JUnitSessionStore$1.evaluate(JUnitSessionStore.java:43)
      	at org.jvnet.hudson.test.JenkinsRule$1.evaluate(JenkinsRule.java:607)
      	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      	at java.base/java.lang.Thread.run(Thread.java:829)
      

      Workarounds

      The issue can be avoided by choosing to not upgrade the snakeyaml plugin to 2.2.

      The issue can also be avoided by upgrading from Jenkins 2.387.3 to Jenkins 2.401.3 or Jenkins 2.414.1 and upgrading the blue ocean plugins. An updated blue ocean plugin (1.27.6) is available for Jenkins 2.401.3 with support for snakeyaml 2.2

      History

      This failure was originally detected in the Jenkins plugin bill of materials as part of a full test.

      Steps to duplicate the issue:

      1. Create a plugins.txt with the list of plugin versions to be installed
      2. Create a run-jenkins.sh shell script to download Jenkins 2.387.3 and the plugins
      3. Run the run-jenkins.sh shell script
      4. Complete the setup wizard by creating a user and choosing to install no additional plugins
      5. Confirm that the stack trace is not visible in the Jenkins console output
      6. Use the plugin manager page to upgrade the snakeyaml plugin to snakeyaml 2.2
      7. Restart Jenkins and confirm that the stack trace is now reported as listed above

          [JENKINS-71966] Blue ocean and kubernetes stack trace with Jenkins 2.387.3 and snakeyaml 2.2

          Mark Waite created issue -
          Mark Waite made changes -
          Description Original: When I install the suggested plugins from the Jenkins 2.387.3 setup wizard and then install the blue ocean plugin, Jenkins reports a stack trace on startup. The stack trace is:

          {noformat}
          2023-09-05 00:56:56.020+0000 [id=35] WARNING hudson.ExtensionFinder$Sezpoz#scout: Failed to scout io.jenkins.blueocean.service.embedded.analytics.BrowserAndOperatingSystemAnalyticsProperties
          java.lang.NoSuchMethodError: org.yaml.snakeyaml.constructor.SafeConstructor: method 'void <init>()' not found
                  at ua_parser.Parser.initialize(Parser.java:80)
                  at ua_parser.Parser.<init>(Parser.java:45)
                  at io.jenkins.blueocean.service.embedded.analytics.BrowserAndOperatingSystemAnalyticsProperties.<clinit>(BrowserAndOperatingSystemAnalyticsProperties.java:19)
                  at java.base/java.lang.Class.forName0(Native Method)
                  at java.base/java.lang.Class.forName(Class.java:398)
                  at hudson.ExtensionFinder$Sezpoz.scout(ExtensionFinder.java:769)
                  at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:353)
                  at hudson.ExtensionList.load(ExtensionList.java:384)
                  at hudson.ExtensionList.ensureLoaded(ExtensionList.java:320)
                  at hudson.ExtensionList.getComponents(ExtensionList.java:184)
                  at jenkins.model.Jenkins$6.onInitMilestoneAttained(Jenkins.java:1196)
                  at jenkins.InitReactorRunner$1.onAttained(InitReactorRunner.java:88)
                  at org.jvnet.hudson.reactor.ReactorListener$Aggregator.lambda$onAttained$3(ReactorListener.java:108)
                  at org.jvnet.hudson.reactor.ReactorListener$Aggregator.run(ReactorListener.java:116)
                  at org.jvnet.hudson.reactor.ReactorListener$Aggregator.onAttained(ReactorListener.java:108)
                  at org.jvnet.hudson.reactor.Reactor$1.run(Reactor.java:182)
                  at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:120)
                  at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
                  at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
                  at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
                  at java.base/java.lang.Thread.run(Thread.java:829)
          {noformat}

          I suspect that the issue can be avoided by choosing to not upgrade the snakeyaml plugin to 2.2.
          New: When I install the suggested plugins from the Jenkins 2.387.3 setup wizard and then install the blue ocean plugin, Jenkins reports a stack trace on startup. The stack trace is:

          {noformat}
          2023-09-05 00:56:56.020+0000 [id=35] WARNING hudson.ExtensionFinder$Sezpoz#scout: Failed to scout io.jenkins.blueocean.service.embedded.analytics.BrowserAndOperatingSystemAnalyticsProperties
          java.lang.NoSuchMethodError: org.yaml.snakeyaml.constructor.SafeConstructor: method 'void <init>()' not found
                  at ua_parser.Parser.initialize(Parser.java:80)
                  at ua_parser.Parser.<init>(Parser.java:45)
                  at io.jenkins.blueocean.service.embedded.analytics.BrowserAndOperatingSystemAnalyticsProperties.<clinit>(BrowserAndOperatingSystemAnalyticsProperties.java:19)
                  at java.base/java.lang.Class.forName0(Native Method)
                  at java.base/java.lang.Class.forName(Class.java:398)
                  at hudson.ExtensionFinder$Sezpoz.scout(ExtensionFinder.java:769)
                  at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:353)
                  at hudson.ExtensionList.load(ExtensionList.java:384)
                  at hudson.ExtensionList.ensureLoaded(ExtensionList.java:320)
                  at hudson.ExtensionList.getComponents(ExtensionList.java:184)
                  at jenkins.model.Jenkins$6.onInitMilestoneAttained(Jenkins.java:1196)
                  at jenkins.InitReactorRunner$1.onAttained(InitReactorRunner.java:88)
                  at org.jvnet.hudson.reactor.ReactorListener$Aggregator.lambda$onAttained$3(ReactorListener.java:108)
                  at org.jvnet.hudson.reactor.ReactorListener$Aggregator.run(ReactorListener.java:116)
                  at org.jvnet.hudson.reactor.ReactorListener$Aggregator.onAttained(ReactorListener.java:108)
                  at org.jvnet.hudson.reactor.Reactor$1.run(Reactor.java:182)
                  at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:120)
                  at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
                  at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
                  at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
                  at java.base/java.lang.Thread.run(Thread.java:829)
          {noformat}

          The issue can be avoided by choosing to not upgrade the snakeyaml plugin to 2.2.

          The issue can also be avoided by upgrading from Jenkins 2.387.3 to Jenkins 2.401.3 or Jenkins 2.414.1 and upgrading the blue ocean plugins. An updated blue ocean plugin (1.27.6) is available for Jenkins 2.401.3 with support for snakeyaml 2.2

          This failure was originally detected in the [Jenkins plugin bill of materials|https://github.com/jenkinsci/bom/pull/2464/checks?check_run_id=16489531836] as part of a full test.
          Mark Waite made changes -
          Attachment New: plugins.txt [ 61104 ]
          Mark Waite made changes -
          Attachment New: run-jenkins.sh [ 61105 ]
          Mark Waite made changes -
          Description Original: When I install the suggested plugins from the Jenkins 2.387.3 setup wizard and then install the blue ocean plugin, Jenkins reports a stack trace on startup. The stack trace is:

          {noformat}
          2023-09-05 00:56:56.020+0000 [id=35] WARNING hudson.ExtensionFinder$Sezpoz#scout: Failed to scout io.jenkins.blueocean.service.embedded.analytics.BrowserAndOperatingSystemAnalyticsProperties
          java.lang.NoSuchMethodError: org.yaml.snakeyaml.constructor.SafeConstructor: method 'void <init>()' not found
                  at ua_parser.Parser.initialize(Parser.java:80)
                  at ua_parser.Parser.<init>(Parser.java:45)
                  at io.jenkins.blueocean.service.embedded.analytics.BrowserAndOperatingSystemAnalyticsProperties.<clinit>(BrowserAndOperatingSystemAnalyticsProperties.java:19)
                  at java.base/java.lang.Class.forName0(Native Method)
                  at java.base/java.lang.Class.forName(Class.java:398)
                  at hudson.ExtensionFinder$Sezpoz.scout(ExtensionFinder.java:769)
                  at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:353)
                  at hudson.ExtensionList.load(ExtensionList.java:384)
                  at hudson.ExtensionList.ensureLoaded(ExtensionList.java:320)
                  at hudson.ExtensionList.getComponents(ExtensionList.java:184)
                  at jenkins.model.Jenkins$6.onInitMilestoneAttained(Jenkins.java:1196)
                  at jenkins.InitReactorRunner$1.onAttained(InitReactorRunner.java:88)
                  at org.jvnet.hudson.reactor.ReactorListener$Aggregator.lambda$onAttained$3(ReactorListener.java:108)
                  at org.jvnet.hudson.reactor.ReactorListener$Aggregator.run(ReactorListener.java:116)
                  at org.jvnet.hudson.reactor.ReactorListener$Aggregator.onAttained(ReactorListener.java:108)
                  at org.jvnet.hudson.reactor.Reactor$1.run(Reactor.java:182)
                  at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:120)
                  at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
                  at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
                  at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
                  at java.base/java.lang.Thread.run(Thread.java:829)
          {noformat}

          The issue can be avoided by choosing to not upgrade the snakeyaml plugin to 2.2.

          The issue can also be avoided by upgrading from Jenkins 2.387.3 to Jenkins 2.401.3 or Jenkins 2.414.1 and upgrading the blue ocean plugins. An updated blue ocean plugin (1.27.6) is available for Jenkins 2.401.3 with support for snakeyaml 2.2

          This failure was originally detected in the [Jenkins plugin bill of materials|https://github.com/jenkinsci/bom/pull/2464/checks?check_run_id=16489531836] as part of a full test.
          New: When I install the suggested plugins from the Jenkins 2.387.3 setup wizard and then install the blue ocean plugin, Jenkins reports a stack trace on startup. The stack trace is:

          {noformat}
          2023-09-05 00:56:56.020+0000 [id=35] WARNING hudson.ExtensionFinder$Sezpoz#scout: Failed to scout io.jenkins.blueocean.service.embedded.analytics.BrowserAndOperatingSystemAnalyticsProperties
          java.lang.NoSuchMethodError: org.yaml.snakeyaml.constructor.SafeConstructor: method 'void <init>()' not found
                  at ua_parser.Parser.initialize(Parser.java:80)
                  at ua_parser.Parser.<init>(Parser.java:45)
                  at io.jenkins.blueocean.service.embedded.analytics.BrowserAndOperatingSystemAnalyticsProperties.<clinit>(BrowserAndOperatingSystemAnalyticsProperties.java:19)
                  at java.base/java.lang.Class.forName0(Native Method)
                  at java.base/java.lang.Class.forName(Class.java:398)
                  at hudson.ExtensionFinder$Sezpoz.scout(ExtensionFinder.java:769)
                  at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:353)
                  at hudson.ExtensionList.load(ExtensionList.java:384)
                  at hudson.ExtensionList.ensureLoaded(ExtensionList.java:320)
                  at hudson.ExtensionList.getComponents(ExtensionList.java:184)
                  at jenkins.model.Jenkins$6.onInitMilestoneAttained(Jenkins.java:1196)
                  at jenkins.InitReactorRunner$1.onAttained(InitReactorRunner.java:88)
                  at org.jvnet.hudson.reactor.ReactorListener$Aggregator.lambda$onAttained$3(ReactorListener.java:108)
                  at org.jvnet.hudson.reactor.ReactorListener$Aggregator.run(ReactorListener.java:116)
                  at org.jvnet.hudson.reactor.ReactorListener$Aggregator.onAttained(ReactorListener.java:108)
                  at org.jvnet.hudson.reactor.Reactor$1.run(Reactor.java:182)at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:120)
                  at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
                  at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
                  at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
                  at java.base/java.lang.Thread.run(Thread.java:829)
          {noformat}

          The issue can be avoided by choosing to not upgrade the snakeyaml plugin to 2.2.

          The issue can also be avoided by upgrading from Jenkins 2.387.3 to Jenkins 2.401.3 or Jenkins 2.414.1 and upgrading the blue ocean plugins. An updated blue ocean plugin (1.27.6) is available for Jenkins 2.401.3 with support for snakeyaml 2.2

          This failure was originally detected in the [Jenkins plugin bill of materials|https://github.com/jenkinsci/bom/pull/2464/checks?check_run_id=16489531836] as part of a full test.

          Steps to duplicate the issue:

          # Create a [^plugins.txt] with the list of plugin versions to be installed
          # Create a [^run-jenkins.sh] shell script to download Jenkins 2.387.3 and the plugins
          # Run the [^run-jenkins.sh] shell script
          # Complete the setup wizard by creating a user and choosing to install no additional plugins
          # Confirm that the stack trace is not visible in the Jenkins console output
          # Use the plugin manager page to upgrade the snakeyaml plugin to snakeyaml 2.2
          # Restart Jenkins and confirm that the stack trace is now reported as listed above
          Mark Waite made changes -
          Description Original: When I install the suggested plugins from the Jenkins 2.387.3 setup wizard and then install the blue ocean plugin, Jenkins reports a stack trace on startup. The stack trace is:

          {noformat}
          2023-09-05 00:56:56.020+0000 [id=35] WARNING hudson.ExtensionFinder$Sezpoz#scout: Failed to scout io.jenkins.blueocean.service.embedded.analytics.BrowserAndOperatingSystemAnalyticsProperties
          java.lang.NoSuchMethodError: org.yaml.snakeyaml.constructor.SafeConstructor: method 'void <init>()' not found
                  at ua_parser.Parser.initialize(Parser.java:80)
                  at ua_parser.Parser.<init>(Parser.java:45)
                  at io.jenkins.blueocean.service.embedded.analytics.BrowserAndOperatingSystemAnalyticsProperties.<clinit>(BrowserAndOperatingSystemAnalyticsProperties.java:19)
                  at java.base/java.lang.Class.forName0(Native Method)
                  at java.base/java.lang.Class.forName(Class.java:398)
                  at hudson.ExtensionFinder$Sezpoz.scout(ExtensionFinder.java:769)
                  at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:353)
                  at hudson.ExtensionList.load(ExtensionList.java:384)
                  at hudson.ExtensionList.ensureLoaded(ExtensionList.java:320)
                  at hudson.ExtensionList.getComponents(ExtensionList.java:184)
                  at jenkins.model.Jenkins$6.onInitMilestoneAttained(Jenkins.java:1196)
                  at jenkins.InitReactorRunner$1.onAttained(InitReactorRunner.java:88)
                  at org.jvnet.hudson.reactor.ReactorListener$Aggregator.lambda$onAttained$3(ReactorListener.java:108)
                  at org.jvnet.hudson.reactor.ReactorListener$Aggregator.run(ReactorListener.java:116)
                  at org.jvnet.hudson.reactor.ReactorListener$Aggregator.onAttained(ReactorListener.java:108)
                  at org.jvnet.hudson.reactor.Reactor$1.run(Reactor.java:182)at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:120)
                  at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
                  at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
                  at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
                  at java.base/java.lang.Thread.run(Thread.java:829)
          {noformat}

          The issue can be avoided by choosing to not upgrade the snakeyaml plugin to 2.2.

          The issue can also be avoided by upgrading from Jenkins 2.387.3 to Jenkins 2.401.3 or Jenkins 2.414.1 and upgrading the blue ocean plugins. An updated blue ocean plugin (1.27.6) is available for Jenkins 2.401.3 with support for snakeyaml 2.2

          This failure was originally detected in the [Jenkins plugin bill of materials|https://github.com/jenkinsci/bom/pull/2464/checks?check_run_id=16489531836] as part of a full test.

          Steps to duplicate the issue:

          # Create a [^plugins.txt] with the list of plugin versions to be installed
          # Create a [^run-jenkins.sh] shell script to download Jenkins 2.387.3 and the plugins
          # Run the [^run-jenkins.sh] shell script
          # Complete the setup wizard by creating a user and choosing to install no additional plugins
          # Confirm that the stack trace is not visible in the Jenkins console output
          # Use the plugin manager page to upgrade the snakeyaml plugin to snakeyaml 2.2
          # Restart Jenkins and confirm that the stack trace is now reported as listed above
          New: When I install the suggested plugins from the Jenkins 2.387.3 setup wizard and then install the blue ocean plugin, Jenkins reports a stack trace on startup. The stack trace is:

          {noformat}
          2023-09-05 00:56:56.020+0000 [id=35] WARNING hudson.ExtensionFinder$Sezpoz#scout: Failed to scout io.jenkins.blueocean.service.embedded.analytics.BrowserAndOperatingSystemAnalyticsProperties
          java.lang.NoSuchMethodError: org.yaml.snakeyaml.constructor.SafeConstructor: method 'void <init>()' not found
                  at ua_parser.Parser.initialize(Parser.java:80)
                  at ua_parser.Parser.<init>(Parser.java:45)
                  at io.jenkins.blueocean.service.embedded.analytics.BrowserAndOperatingSystemAnalyticsProperties.<clinit>(BrowserAndOperatingSystemAnalyticsProperties.java:19)
                  at java.base/java.lang.Class.forName0(Native Method)
                  at java.base/java.lang.Class.forName(Class.java:398)
                  at hudson.ExtensionFinder$Sezpoz.scout(ExtensionFinder.java:769)
                  at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:353)
                  at hudson.ExtensionList.load(ExtensionList.java:384)
                  at hudson.ExtensionList.ensureLoaded(ExtensionList.java:320)
                  at hudson.ExtensionList.getComponents(ExtensionList.java:184)
                  at jenkins.model.Jenkins$6.onInitMilestoneAttained(Jenkins.java:1196)
                  at jenkins.InitReactorRunner$1.onAttained(InitReactorRunner.java:88)
                  at org.jvnet.hudson.reactor.ReactorListener$Aggregator.lambda$onAttained$3(ReactorListener.java:108)
                  at org.jvnet.hudson.reactor.ReactorListener$Aggregator.run(ReactorListener.java:116)
                  at org.jvnet.hudson.reactor.ReactorListener$Aggregator.onAttained(ReactorListener.java:108)
                  at org.jvnet.hudson.reactor.Reactor$1.run(Reactor.java:182)at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:120)
                  at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
                  at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
                  at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
                  at java.base/java.lang.Thread.run(Thread.java:829)
          {noformat}

          h2. Workarounds

          The issue can be avoided by choosing to not upgrade the snakeyaml plugin to 2.2.

          The issue can also be avoided by upgrading from Jenkins 2.387.3 to Jenkins 2.401.3 or Jenkins 2.414.1 and upgrading the blue ocean plugins. An updated blue ocean plugin (1.27.6) is available for Jenkins 2.401.3 with support for snakeyaml 2.2

          h2. History

          This failure was originally detected in the [Jenkins plugin bill of materials|https://github.com/jenkinsci/bom/pull/2464/checks?check_run_id=16489531836] as part of a full test.

          h2. Steps to duplicate the issue:

          # Create a [^plugins.txt] with the list of plugin versions to be installed
          # Create a [^run-jenkins.sh] shell script to download Jenkins 2.387.3 and the plugins
          # Run the [^run-jenkins.sh] shell script
          # Complete the setup wizard by creating a user and choosing to install no additional plugins
          # Confirm that the stack trace is not visible in the Jenkins console output
          # Use the plugin manager page to upgrade the snakeyaml plugin to snakeyaml 2.2
          # Restart Jenkins and confirm that the stack trace is now reported as listed above

          Mark Waite added a comment -

          olamy I assume it is intentional that the blue ocean plugins available with Jenkins 2.387.3 (and earlier) are not compatible with the snakeyaml 2.2 plugin. Users should upgrade to 2.414.1 (first preference) or 2.401.3 (second preference).

          Mark Waite added a comment - olamy  I assume it is intentional that the blue ocean plugins available with Jenkins 2.387.3 (and earlier) are not compatible with the snakeyaml 2.2 plugin. Users should upgrade to 2.414.1 (first preference) or 2.401.3 (second preference).

          Olivier Lamy added a comment -

          I wouldn't say intentional but the fix for snakeyaml 2.x has been done on master only.

          Do we need some backport?

          I don't understand how you can install BlueOcean if the core requirement exceeds your current running Jenkins version.

          This should be impossible when using the plugin manager.

           

           

          Olivier Lamy added a comment - I wouldn't say intentional but the fix for snakeyaml 2.x has been done on master only. Do we need some backport? I don't understand how you can install BlueOcean if the core requirement exceeds your current running Jenkins version. This should be impossible when using the plugin manager.    

          Mark Waite added a comment - - edited

          Blue ocean 1.27.5.1 is compatible with Jenkins 2.387.3 and can be installed on Jenkins 2.387.3 from the plugin manager. It doesn't include the support for snakeyaml 2.2. However, the snakeyaml 2.2 plugin is allowed to be installed on 2.387.3 because that meets its requirements for minimum Jenkins version.

          Blue ocean 1.27.6 requires Jenkins 2.401.3 or newer and includes support for snakeyaml 2.2.

          I'm not sure of the best way to handle the change. A backport to create 1.27.5.2 would be one way to resolve it. I suspect there are other ways to handle it as well.

          Mark Waite added a comment - - edited Blue ocean 1.27.5.1 is compatible with Jenkins 2.387.3 and can be installed on Jenkins 2.387.3 from the plugin manager. It doesn't include the support for snakeyaml 2.2. However, the snakeyaml 2.2 plugin is allowed to be installed on 2.387.3 because that meets its requirements for minimum Jenkins version. Blue ocean 1.27.6 requires Jenkins 2.401.3 or newer and includes support for snakeyaml 2.2. I'm not sure of the best way to handle the change. A backport to create 1.27.5.2 would be one way to resolve it. I suspect there are other ways to handle it as well.

          James Nord added a comment - - edited

          > I'm not sure of the best way to handle the change

          well we could bump the baseline of snakeyaml in a 2.3 so it would not be installable as an update to prevent other users on outdated jenkins versions from hitting the issue - it would however would not fix those that already installed.

          Also there is no need for an API plugin to depend on latest Jenkins versions - I would always argue and API plugin should target a lower Jenkins (without dragging in detached dependencies) where it can without introducing unnecessary tech-debt.

          Additionally it is a dependency of other plugins that are targetting lower versions, so that would cause issues for users installing old versions of Jenkins as the plugin dep would not e satisfiable (IIUC how the OSS UC works)?

          > backport to create 1.27.5.2 would be one way to resolve

          and then you need to backport other things also that are incompatible and have moved on. (k8s?)

          There is no difference really here in any plugin (api or otherwise) with a breaking change and plugin dependencies. `2.387` is not supported by the community - it is 2 LTS lines out of date and has security issues.

          either downgrade snakeyaml (it is not needed to be on 2.2 for any security issue) - or upgrade Jenkins and plugins.

          James Nord added a comment - - edited > I'm not sure of the best way to handle the change well we could bump the baseline of snakeyaml in a 2.3 so it would not be installable as an update to prevent other users on outdated jenkins versions from hitting the issue - it would however would not fix those that already installed. Also there is no need for an API plugin to depend on latest Jenkins versions - I would always argue and API plugin should target a lower Jenkins (without dragging in detached dependencies) where it can without introducing unnecessary tech-debt. Additionally it is a dependency of other plugins that are targetting lower versions, so that would cause issues for users installing old versions of Jenkins as the plugin dep would not e satisfiable (IIUC how the OSS UC works)? > backport to create 1.27.5.2 would be one way to resolve and then you need to backport other things also that are incompatible and have moved on. (k8s?) There is no difference really here in any plugin (api or otherwise) with a breaking change and plugin dependencies. `2.387` is not supported by the community - it is 2 LTS lines out of date and has security issues. either downgrade snakeyaml (it is not needed to be on 2.2 for any security issue) - or upgrade Jenkins and plugins.

            escoem Emilio Escobar
            markewaite Mark Waite
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: