-
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,