-
Bug
-
Resolution: Cannot Reproduce
-
Minor
-
Jenkins LTS 2.222.4
Mac Catalina 10.15.5 (19F101)
Groovy Events Listener 1.017
Hi,
We found an error during the installation of the `Groovy Events Listener` plugin in the latest version of Jenkins LTS (2.222.4). We found the same error if we have a previous version of the plugin (1.014) installed in our Jenkins instance and we try to upgrade it.
This is the stacktrace error when we try to install/upgrade it:
SEVERE h.model.UpdateCenter$DownloadJob#run: Failed to install groovy-events-listener-plugin groovy.lang.GroovyRuntimeException: Conflicting module versions. Module [groovy-all is loaded in version 2.4.8 and you are trying to load version 2.4.12 at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl$DefaultModuleListener.onModule(MetaClassRegistryImpl.java:513) at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanExtensionModuleFromProperties(ExtensionModuleScanner.java:80) at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanExtensionModuleFromMetaInf(ExtensionModuleScanner.java:74) at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanClasspathModules(ExtensionModuleScanner.java:56) at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:113) at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:74) at groovy.lang.GroovySystem.<clinit>(GroovySystem.java:36) Caused: java.lang.ExceptionInInitializerError at org.codehaus.groovy.runtime.InvokerHelper.<clinit>(InvokerHelper.java:66) at org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallStaticSite(CallSiteArray.java:75) at org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallSite(CallSiteArray.java:162) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117) at org.jenkinsci.plugins.globalEventsPlugin.GlobalEventsPlugin.<clinit>(GlobalEventsPlugin.groovy:22) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at java.lang.Class.newInstance(Class.java:442) at hudson.ClassicPluginStrategy.load(ClassicPluginStrategy.java:374) Caused: java.io.IOException: Unable to load org.jenkinsci.plugins.globalEventsPlugin.GlobalEventsPlugin from groovy-events-listener-plugin at hudson.ClassicPluginStrategy.load(ClassicPluginStrategy.java:380) at hudson.PluginManager.dynamicLoad(PluginManager.java:930) Caused: java.io.IOException: Failed to install groovy-events-listener-plugin plugin at hudson.PluginManager.dynamicLoad(PluginManager.java:942) at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:2122) Caused: java.io.IOException: Failed to dynamically deploy this plugin at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:2126) at hudson.model.UpdateCenter$DownloadJob.run(UpdateCenter.java:1806) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at hudson.remoting.AtmostOneThreadExecutor$Worker.run(AtmostOneThreadExecutor.java:111) at java.lang.Thread.run(Thread.java:748)
And this is the error when the Jenkins instance starts and we forced the installation of the plugin previously:
2020-06-12 14:21:32.857+0000 [id=67] WARNING jenkins.model.Jenkins$5#runTask: Loading plugin Groovy Events Listener Plugin v1.017 (groovy-events-listener-plugin) failed perhaps due to plugin dependency issues groovy.lang.GroovyRuntimeException: Conflicting module versions. Module [groovy-all is loaded in version 2.4.8 and you are trying to load version 2.4.12 at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl$DefaultModuleListener.onModule(MetaClassRegistryImpl.java:513) at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanExtensionModuleFromProperties(ExtensionModuleScanner.java:80) at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanExtensionModuleFromMetaInf(ExtensionModuleScanner.java:74) at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanClasspathModules(ExtensionModuleScanner.java:56) at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:113) at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:74) at groovy.lang.GroovySystem.<clinit>(GroovySystem.java:36) Caused: java.lang.ExceptionInInitializerError at org.codehaus.groovy.runtime.InvokerHelper.<clinit>(InvokerHelper.java:66) at org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallStaticSite(CallSiteArray.java:75) at org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallSite(CallSiteArray.java:162) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117) at org.jenkinsci.plugins.globalEventsPlugin.GlobalEventsPlugin.<clinit>(GlobalEventsPlugin.groovy:22) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at java.lang.Class.newInstance(Class.java:442) at hudson.ClassicPluginStrategy.load(ClassicPluginStrategy.java:374) Caused: java.io.IOException: Unable to load org.jenkinsci.plugins.globalEventsPlugin.GlobalEventsPlugin from groovy-events-listener-plugin at hudson.ClassicPluginStrategy.load(ClassicPluginStrategy.java:380) at hudson.PluginManager$2$1$1.run(PluginManager.java:547) at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169) at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:296) at jenkins.model.Jenkins$5.runTask(Jenkins.java:1133) 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)
We reviewed the Jenkins instance and it seems that version (2.222.4) and previous version using the `groovy-all.2.4.12` java library version (is locate in the `/war/WEB-INF/lib` folder) and the plugin is using the `groovy-all.2.4.8` version).
It seems the `PluginFirstClassLoader = true` parameter was included in the `MANIFEST.MF` file of the plugin in the `1.015` version.
We tested using the version `1.014`, `1.015`, `1.016` and `1.017`, and only the version `1.014` was installed successfully in our Jenkins instance. And this is the only version (of the tested version by us) which has not that parameter in the `MANIFEST.MF` file.
Kind regards,