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

CASC exception after upgrade to 2.249.1 from 2.235.5

    • Icon: Bug Bug
    • Resolution: Not A Defect
    • Icon: Critical Critical
    • core
    • None
    • Docker v19.03.8 on Ubuntu host v18.04.4 LTS
    • intentional change, not a defect

      We bake our own Jenkins master docker image based on the officially released Jenkins images on docker hub.

      Our image was based on 2.235.5. I updated our image to use 2.249.1 as the base, with no other changes, and the next time I tried starting the docker container Jenkins failed to boot with the following stack trace:

      io.jenkins.plugins.casc.ConfiguratorException: 'statusFilter' is deprecated
      	at io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:321)
      	at io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:270)
      Caused: io.jenkins.plugins.casc.ConfiguratorException: Failed to save hudson.model.ListView@42860ffb[view/C1%20Network%20Develop%20Dashboard/]
      	at io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:273)
      	at io.jenkins.plugins.casc.impl.configurators.DataBoundConfigurator.configure(DataBoundConfigurator.java:83)
      	at io.jenkins.plugins.casc.impl.configurators.HeteroDescribableConfigurator.lambda$doConfigure$16668e2$1(HeteroDescribableConfigurator.java:277)
      	at io.vavr.CheckedFunction0.lambda$unchecked$52349c75$1(CheckedFunction0.java:247)
      	at io.jenkins.plugins.casc.impl.configurators.HeteroDescribableConfigurator.doConfigure(HeteroDescribableConfigurator.java:277)
      	at io.jenkins.plugins.casc.impl.configurators.HeteroDescribableConfigurator.lambda$null$2(HeteroDescribableConfigurator.java:86)
      	at io.vavr.control.Option.map(Option.java:392)
      	at io.jenkins.plugins.casc.impl.configurators.HeteroDescribableConfigurator.lambda$configure$3(HeteroDescribableConfigurator.java:86)
      	at io.vavr.Tuple2.apply(Tuple2.java:238)
      	at io.jenkins.plugins.casc.impl.configurators.HeteroDescribableConfigurator.configure(HeteroDescribableConfigurator.java:83)
      	at io.jenkins.plugins.casc.impl.configurators.HeteroDescribableConfigurator.check(HeteroDescribableConfigurator.java:92)
      	at io.jenkins.plugins.casc.impl.configurators.HeteroDescribableConfigurator.check(HeteroDescribableConfigurator.java:55)
      	at io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:344)
      	at io.jenkins.plugins.casc.BaseConfigurator.check(BaseConfigurator.java:287)
      	at io.jenkins.plugins.casc.ConfigurationAsCode.lambda$checkWith$8(ConfigurationAsCode.java:755)
      	at io.jenkins.plugins.casc.ConfigurationAsCode.invokeWith(ConfigurationAsCode.java:691)
      Caused: io.jenkins.plugins.casc.ConfiguratorException: jenkins: error configuring 'jenkins' with class io.jenkins.plugins.casc.core.JenkinsConfigurator configurator
      	at io.jenkins.plugins.casc.ConfigurationAsCode.invokeWith(ConfigurationAsCode.java:697)
      	at io.jenkins.plugins.casc.ConfigurationAsCode.checkWith(ConfigurationAsCode.java:755)
      	at io.jenkins.plugins.casc.ConfigurationAsCode.configureWith(ConfigurationAsCode.java:740)
      	at io.jenkins.plugins.casc.ConfigurationAsCode.configureWith(ConfigurationAsCode.java:616)
      	at io.jenkins.plugins.casc.ConfigurationAsCode.configure(ConfigurationAsCode.java:298)
      	at io.jenkins.plugins.casc.ConfigurationAsCode.init(ConfigurationAsCode.java:290)
      Caused: java.lang.reflect.InvocationTargetException
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:498)
      	at hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:104)
      Caused: java.lang.Error
      	at hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:110)
      	at hudson.init.TaskMethodFinder$TaskImpl.run(TaskMethodFinder.java:175)
      	at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:296)
      	at jenkins.model.Jenkins$5.runTask(Jenkins.java:1131)
      	at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:214)
      	at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117)
      	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:59)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      	at java.lang.Thread.run(Thread.java:748)
      Caused: org.jvnet.hudson.reactor.ReactorException
      	at org.jvnet.hudson.reactor.Reactor.execute(Reactor.java:282)
      	at jenkins.InitReactorRunner.run(InitReactorRunner.java:50)
      	at jenkins.model.Jenkins.executeReactor(Jenkins.java:1164)
      	at jenkins.model.Jenkins.<init>(Jenkins.java:964)
      	at hudson.model.Hudson.<init>(Hudson.java:85)
      	at hudson.model.Hudson.<init>(Hudson.java:81)
      	at hudson.WebAppMain$3.run(WebAppMain.java:282)
      Caused: hudson.util.HudsonFailedToLoad
      	at hudson.WebAppMain$3.run(WebAppMain.java:299)
      

      Our master image uses CASC baked into the /usr/share/jenkins/ref folder within the image. Our redeploy process kills the old container and deletes the following from the persistent JENKINS_HOME folder before redeploying:

      • casc/
      • plugins/*
      • jenkins.yaml
      • config.xml
      • init.groovy.d/

          [JENKINS-63646] CASC exception after upgrade to 2.249.1 from 2.235.5

          Mark Waite added a comment - - edited

          I believe that message indicates that your jenkins.yaml includes an entry statusFilter that is no longer supported in Jenkins 2.249.1 or in one of the plugins that are being loaded

          The configuration as code plugin tracks issues in GitHub . In this case, I don't think that it is a bug, rather it is an expected behavior. When a setting is not recognized, Jenkins configuration as code stops with a hard error rather than starting a partially initialized Jenkins instance.

          Mark Waite added a comment - - edited I believe that message indicates that your jenkins.yaml includes an entry statusFilter that is no longer supported in Jenkins 2.249.1 or in one of the plugins that are being loaded The configuration as code plugin tracks issues in GitHub . In this case, I don't think that it is a bug, rather it is an expected behavior. When a setting is not recognized, Jenkins configuration as code stops with a hard error rather than starting a partially initialized Jenkins instance.

          Mark Waite added a comment -

          As far as I can tell, the removal of statusFilter from configuration as code was an intentional change by raihaan as part of a commit in pull request 4446. It was first released in Jenkins 2.239 as part of JENKINS-20052.

          Mark Waite added a comment - As far as I can tell, the removal of statusFilter from configuration as code was an intentional change by raihaan as part of a commit in pull request 4446 . It was first released in Jenkins 2.239 as part of JENKINS-20052 .

          Oleg Nenashev added a comment -

          Even if it is not a defect, it worth mentioning thee removal in the upgrade guidelines

          Oleg Nenashev added a comment - Even if it is not a defect, it worth mentioning thee removal in the upgrade guidelines

          Mark Waite added a comment -

          Proposed addition to the Jenkins 2.249.1 upgrade guide has been submitted as PR-3697.

          Mark Waite added a comment - Proposed addition to the Jenkins 2.249.1 upgrade guide has been submitted as PR-3697 .

            Unassigned Unassigned
            faucherb94 Ben Faucher
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: