• Icon: Bug Bug
    • Resolution: Not A Defect
    • Icon: Blocker Blocker
    • email-ext-plugin
    • None
    • Jenkins 2.235.3, JCasC 1.42, Email-Ext 2.72

      After update to Jenkins plugins, Email-Ext plugin causes a load failure by JCasC.  See attached.

      Have to downgrade to2.71 to get Jenkins to start again.

      Has changes for JCasC configuration code changed?

       

          [JENKINS-63292] Email-ext 2.72 and JCasC cause launch failure

          Alan Sparks created issue -

          Alan Sparks added a comment -

          Also for completeness, the Jenkins JCasC configuration section as currently (and previously) used:

           

          extendedEmailPublisher:
          adminRequiredForTemplateTesting: false
          allowUnregisteredEnabled: false
          charset: "UTF-8"
          debugMode: false
          defaultBody: " - Build # - :\r\n\r\nCheck console output at to view the results."
          defaultContentType: "text/plain"
          defaultSubject: " - Build # - !"
          maxAttachmentSize: -1
          maxAttachmentSizeMb: 0
          precedenceBulk: false
          smtpServer: "${MF_SMTP_SERVER}"
          useSsl: false
          watchingEnabled: false

          Alan Sparks added a comment - Also for completeness, the Jenkins JCasC configuration section as currently (and previously) used:   extendedEmailPublisher: adminRequiredForTemplateTesting: false allowUnregisteredEnabled: false charset: "UTF-8" debugMode: false defaultBody: " - Build # - :\r\n\r\nCheck console output at to view the results." defaultContentType: "text/plain" defaultSubject: " - Build # - !" maxAttachmentSize: -1 maxAttachmentSizeMb: 0 precedenceBulk: false smtpServer: "${MF_SMTP_SERVER}" useSsl: false watchingEnabled: false

          Alex Earl added a comment -

          Yes, there have been changes, 2.72 is the first to actually support JCasC. I will look at the trace.

          Alex Earl added a comment - Yes, there have been changes, 2.72 is the first to actually support JCasC. I will look at the trace.

          Alex Earl added a comment -

          Looks like it might be as simple as changing your "extendedEmailPublisher:" to "email-ext:"

          Alex Earl added a comment - Looks like it might be as simple as changing your "extendedEmailPublisher:" to "email-ext:"

          Alan Sparks added a comment -

          I did actually test that a few minutes ago, and got another stack trace as below.

          Do you have idea what options are allowed now, changes since the original working configs?

           

          2020-08-04 15:22:40.194+0000 [id=29] SEVERE jenkins.InitReactorRunner$1#onTaskFailed: Failed ConfigurationAsCode.init
          io.jenkins.plugins.casc.ConfiguratorException: 'useSsl' is deprecated
          at io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:321)
          at io.jenkins.plugins.casc.BaseConfigurator.check(BaseConfigurator.java:287)
          at io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:351)
          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: unclassified: error configuring 'unclassified' with class io.jenkins.plugins.casc.impl.configurators.GlobalConfigurationCategoryConfigurator 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)
          2020-08-04 15:22:40.197+0000 [id=20] SEVERE hudson.util.BootFailure#publish: Failed to initialize Jenkins
          io.jenkins.plugins.casc.ConfiguratorException: 'useSsl' is deprecated
          at io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:321)
          at io.jenkins.plugins.casc.BaseConfigurator.check(BaseConfigurator.java:287)
          at io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:351)
          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: unclassified: error configuring 'unclassified' with class io.jenkins.plugins.casc.impl.configurators.GlobalConfigurationCategoryConfigurator 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:262)
          Caused: hudson.util.HudsonFailedToLoad
          at hudson.WebAppMain$3.run(WebAppMain.java:279)
          2020-08-04 15:22:40.210+0000 [id=20] INFO jenkins.model.Jenkins#cleanUp: Stopping Jenkins
          2020-08-04 15:22:40.252+0000 [id=20] INFO jenkins.model.Jenkins$18#onAttained: Started termination
          2020-08-04 15:22:40.274+0000 [id=20] INFO jenkins.model.Jenkins$18#onAttained: Completed termination
          2020-08-04 15:22:40.275+0000 [id=20] INFO jenkins.model.Jenkins#_cleanUpDisconnectComputers: Starting node disconnection
          2020-08-04 15:22:40.279+0000 [id=20] INFO jenkins.model.Jenkins#_cleanUpShutdownPluginManager: Stopping plugin manager
          2020-08-04 15:22:40.944+0000 [id=20] INFO jenkins.model.Jenkins#_cleanUpPersistQueue: Persisting build queue
          2020-08-04 15:22:40.970+0000 [id=20] INFO jenkins.model.Jenkins#_cleanUpAwaitDisconnects: Waiting for node disconnection completion
          2020-08-04 15:22:40.971+0000 [id=20] INFO jenkins.model.Jenkins#cleanUp: Jenkins stopped

           

           

          Alan Sparks added a comment - I did actually test that a few minutes ago, and got another stack trace as below. Do you have idea what options are allowed now, changes since the original working configs?   2020-08-04 15:22:40.194+0000 [id=29] SEVERE jenkins.InitReactorRunner$1#onTaskFailed: Failed ConfigurationAsCode.init io.jenkins.plugins.casc.ConfiguratorException: 'useSsl' is deprecated at io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:321) at io.jenkins.plugins.casc.BaseConfigurator.check(BaseConfigurator.java:287) at io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:351) 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: unclassified: error configuring 'unclassified' with class io.jenkins.plugins.casc.impl.configurators.GlobalConfigurationCategoryConfigurator 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) 2020-08-04 15:22:40.197+0000 [id=20] SEVERE hudson.util.BootFailure#publish: Failed to initialize Jenkins io.jenkins.plugins.casc.ConfiguratorException: 'useSsl' is deprecated at io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:321) at io.jenkins.plugins.casc.BaseConfigurator.check(BaseConfigurator.java:287) at io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:351) 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: unclassified: error configuring 'unclassified' with class io.jenkins.plugins.casc.impl.configurators.GlobalConfigurationCategoryConfigurator 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:262) Caused: hudson.util.HudsonFailedToLoad at hudson.WebAppMain$3.run(WebAppMain.java:279) 2020-08-04 15:22:40.210+0000 [id=20] INFO jenkins.model.Jenkins#cleanUp: Stopping Jenkins 2020-08-04 15:22:40.252+0000 [id=20] INFO jenkins.model.Jenkins$18#onAttained: Started termination 2020-08-04 15:22:40.274+0000 [id=20] INFO jenkins.model.Jenkins$18#onAttained: Completed termination 2020-08-04 15:22:40.275+0000 [id=20] INFO jenkins.model.Jenkins#_cleanUpDisconnectComputers: Starting node disconnection 2020-08-04 15:22:40.279+0000 [id=20] INFO jenkins.model.Jenkins#_cleanUpShutdownPluginManager: Stopping plugin manager 2020-08-04 15:22:40.944+0000 [id=20] INFO jenkins.model.Jenkins#_cleanUpPersistQueue: Persisting build queue 2020-08-04 15:22:40.970+0000 [id=20] INFO jenkins.model.Jenkins#_cleanUpAwaitDisconnects: Waiting for node disconnection completion 2020-08-04 15:22:40.971+0000 [id=20] INFO jenkins.model.Jenkins#cleanUp: Jenkins stopped    

          Alex Earl added a comment -

          alecharp Any help here? I am not super familiar with JCasC

          Alex Earl added a comment - alecharp Any help here? I am not super familiar with JCasC

          Could you make fix the indentation (welcome to the YAML world (sarcasm)) on the configuration example you provided?

          From what I understand of the stack-trace, it seems that the useSsl is being read by the unclassified category. It seems odd.

          Adrien Lecharpentier added a comment - Could you make fix the indentation (welcome to the YAML world (sarcasm)) on the configuration example you provided? From what I understand of the stack-trace, it seems that the useSsl is being read by the unclassified category. It seems odd.

          Adrien Lecharpentier added a comment - Please see the example on the plugin repository: https://github.com/jenkinsci/email-ext-plugin/blob/master/src/test/resources/configuration-as-code.yml

          Alan Sparks added a comment - - edited

          I'll look at the provided config snippet and try to make it work.   It appears there is a serious change in the configuration block, since it worked with the previous indentation.

          It might be a good idea to let people know this appears to be a breaking change for those using JCasC...

          Alan Sparks added a comment - - edited I'll look at the provided config snippet and try to make it work.   It appears there is a serious change in the configuration block, since it worked with the previous indentation. It might be a good idea to let people know this appears to be a breaking change for those using JCasC...

          Alan Sparks added a comment -

          alecharp slide_o_mix Looking at your configuration this is very different from what was working with the last version of email-ext.  Is there any description of all those config items, and which are required?  Especially when talking of new levels, like "addAccount" and "mailAccount".

          Alan Sparks added a comment - alecharp slide_o_mix Looking at your configuration this is very different from what was working with the last version of email-ext.  Is there any description of all those config items, and which are required?  Especially when talking of new levels, like "addAccount" and "mailAccount".

            slide_o_mix Alex Earl
            webminster Alan Sparks
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: