jenkinsci / groovy-events-listener-plugin

A Jenkins plugin, which executes groovy code when an event occurs.
https://plugins.jenkins.io/groovy-events-listener-plugin/
MIT License
36 stars 34 forks source link

Plugin upgrade from 1.0.14 to 1.0.17 failed on Jenkins 2.176.3 and 2.190 #48

Closed jamalkm closed 4 years ago

jamalkm commented 5 years ago

I have a local instance of the Jenkins with Docker. The plugin version 1.0.14 was working OK with both Jenkins versions LTS 2.176.3 and 2.190.

When I try to upgrade the plugin to 1.0.17 I get the following error:

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:369)
Caused: java.io.IOException: Unable to load org.jenkinsci.plugins.globalEventsPlugin.GlobalEventsPlugin from groovy-events-listener-plugin
    at hudson.ClassicPluginStrategy.load(ClassicPluginStrategy.java:375)
    at hudson.PluginManager$2$1$1.run(PluginManager.java:545)
    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:1095)
    at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:214)
    at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117)
    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)

The above mentioned Jenkins versions, have groovy version as 2.4.12.

vortarian commented 5 years ago

@markyjackson-taulia Seeing this also on the lts version of jenkins (just confirming)

vortarian commented 5 years ago

It appears a community contributor has put some work into this: https://github.com/merc1031/groovy-events-listener-plugin/commit/2c4c3500dd0526dcde283db93ba03e0f3ff524bf

markjacksonfishing commented 4 years ago

I have tested this and cannot reproduce it

stephank commented 4 years ago

I came across this plugin, and thought it could be useful for us, but couldn't install it because of this issue.

We're on Jenkins 2.199 installed from official Debian packages. Is it perhaps a conflict with some other plugin? Would it be useful if I provided a list of our installed plugins?

markjacksonfishing commented 4 years ago

@stephank yeah, can you also open a new issue. In your new issues can you put the plugin version you are using, the Jenkins version and a list of other plugins and their versions. That would be super helpful for me in debugging

vortarian commented 4 years ago

This reproduces it pretty easily:

$ cat Dockerfile 
FROM jenkins/jenkins:lts-jdk11

RUN unset HTTP_PROXY HTTPS_PROXY http_proxy https_proxy \
  && /usr/local/bin/install-plugins.sh groovy-events-listener-plugin:latest

USER 0

EXPOSE 8080 50000

$ docker build -t groovy-test . $ docker run -it groovy-test:latest

Running from: /usr/share/jenkins/jenkins.war
webroot: EnvVars.masterEnvVars.get("JENKINS_HOME")
2019-10-17 21:10:54.235+0000 [id=1] INFO    org.eclipse.jetty.util.log.Log#initialized: Logging initialized @423ms to org.eclipse.jetty.util.log.JavaUtilLog
2019-10-17 21:10:54.279+0000 [id=1] INFO    winstone.Logger#logInternal: Beginning extraction from war file
2019-10-17 21:10:54.890+0000 [id=1] WARNING o.e.j.s.handler.ContextHandler#setContextPath: Empty contextPath
2019-10-17 21:10:54.935+0000 [id=1] INFO    org.eclipse.jetty.server.Server#doStart: jetty-9.4.z-SNAPSHOT; built: 2019-05-02T00:04:53.875Z; git: e1bc35120a6617ee3df052294e433f3a25ce7097; jvm 11.0.4+11
2019-10-17 21:10:55.152+0000 [id=1] INFO    o.e.j.w.StandardDescriptorProcessor#visitServlet: NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet
2019-10-17 21:10:55.182+0000 [id=1] INFO    o.e.j.s.s.DefaultSessionIdManager#doStart: DefaultSessionIdManager workerName=node0
2019-10-17 21:10:55.182+0000 [id=1] INFO    o.e.j.s.s.DefaultSessionIdManager#doStart: No SessionScavenger set, using defaults
2019-10-17 21:10:55.185+0000 [id=1] INFO    o.e.j.server.session.HouseKeeper#startScavenging: node0 Scavenging every 600000ms
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.thoughtworks.xstream.core.util.Fields (file:/var/jenkins_home/war/WEB-INF/lib/xstream-1.4.7-jenkins-1.jar) to field java.util.TreeMap.comparator
WARNING: Please consider reporting this to the maintainers of com.thoughtworks.xstream.core.util.Fields
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Jenkins home directory: /var/jenkins_home found at: EnvVars.masterEnvVars.get("JENKINS_HOME")
2019-10-17 21:10:55.588+0000 [id=1] INFO    o.e.j.s.handler.ContextHandler#doStart: Started w.@f3021cb{Jenkins v2.190.1,/,file:///var/jenkins_home/war/,AVAILABLE}{/var/jenkins_home/war}
2019-10-17 21:10:55.602+0000 [id=1] INFO    o.e.j.server.AbstractConnector#doStart: Started ServerConnector@2cc3ad05{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
2019-10-17 21:10:55.602+0000 [id=1] INFO    org.eclipse.jetty.server.Server#doStart: Started @1791ms
2019-10-17 21:10:55.603+0000 [id=24]    INFO    winstone.Logger#logInternal: Winstone Servlet Engine v4.0 running: controlPort=disabled
2019-10-17 21:10:55.837+0000 [id=31]    INFO    jenkins.InitReactorRunner$1#onAttained: Started initialization
2019-10-17 21:10:56.072+0000 [id=47]    WARNING hudson.ClassicPluginStrategy#createClassJarFromWebInfClasses: Created /var/jenkins_home/plugins/groovy-events-listener-plugin/WEB-INF/lib/classes.jar; update plugin to a version created with a newer harness
2019-10-17 21:10:56.102+0000 [id=47]    INFO    hudson.PluginManager#considerDetachedPlugin: Loading a detached plugin as a dependency: /var/jenkins_home/plugins/command-launcher.jpi
2019-10-17 21:10:56.110+0000 [id=47]    INFO    hudson.PluginManager#considerDetachedPlugin: Loading a detached plugin as a dependency: /var/jenkins_home/plugins/jdk-tool.jpi
2019-10-17 21:10:56.118+0000 [id=47]    INFO    hudson.PluginManager#considerDetachedPlugin: Loading a detached plugin as a dependency: /var/jenkins_home/plugins/trilead-api.jpi
2019-10-17 21:10:56.139+0000 [id=47]    INFO    hudson.PluginManager#considerDetachedPlugin: Loading a detached plugin as a dependency: /var/jenkins_home/plugins/script-security.jpi
2019-10-17 21:10:56.149+0000 [id=47]    INFO    hudson.PluginManager#considerDetachedPlugin: Loading a detached plugin as a dependency: /var/jenkins_home/plugins/jaxb.jpi
2019-10-17 21:10:56.177+0000 [id=52]    INFO    jenkins.InitReactorRunner$1#onAttained: Listed all plugins
2019-10-17 21:10:56.305+0000 [id=45]    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 ..