I am testing an upgraded version of Jenkins (from 2.235.1 to 2.375.1). One of my jobs fails with the following error when run in Jenkins Agent with Swarm Client 3.39 (this works perfectly on previou sversion):
After reading up a bit more I think Maven 3 and Swarm Client 3.39 both have slf4j depenencies, has any one of you come accros this problem before? Similar issue reported in https://issues.jenkins.io/browse/JENKINS-42098
--------------- log from failed Jenkins job -------
`[EnvInject] - Variables injected successfully.
Parsing POMs
Established TCP socket on 46713
maven35-agent.jar already up to date
maven35-interceptor.jar already up to date
maven3-interceptor-commons.jar already up to date
[get-automated-testing] $ /etc/alternatives/jre_11_openjdk/bin/java -Xmx8192m -XX:+UseParallelGC -Duser.language=en -Duser.country=GB -verbose:gc -cp /var/lib/jenkins/maven35-agent.jar:/opt/maven/boot/plexus-classworlds-2.5.2.jar:/opt/maven/conf/logging jenkins.maven3.agent.Maven35Main /opt/maven/ /opt/swarm-client-3.39.jar /var/lib/jenkins/maven35-interceptor.jar /var/lib/jenkins/maven3-interceptor-commons.jar 46713
[0.009s][info][gc] Using Parallel
<===[JENKINS REMOTING CAPACITY]===>channel started
[WARNING] LinkageError while performing UserRequest:hudson.maven.Maven3Builder@64dae73d
java.lang.LinkageError: loader constraint violation: loader org.codehaus.plexus.classworlds.realm.ClassRealm @6acbcfc0 wants to load interface org.slf4j.Logger. A different interface with the same name was previously loaded by org.codehaus.plexus.classworlds.realm.ClassRealm @27bc2616. (org.slf4j.Logger is in unnamed module of loader org.codehaus.plexus.classworlds.realm.ClassRealm @27bc2616, parent loader 'app')
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:555)
at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:458)
at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:452)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:451)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:401)
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)
at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
at org.apache.maven.cli.event.ExecutionEventLogger.<init>(ExecutionEventLogger.java:69)
at hudson.maven.util.ExecutionEventLogger.<init>(ExecutionEventLogger.java:65)
at hudson.maven.Maven3Builder$MavenExecutionListener.<init>(Maven3Builder.java:375)
at hudson.maven.Maven3Builder$JenkinsEventSpy.<init>(Maven3Builder.java:199)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:119)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:70)
at hudson.remoting.UserRequest.perform(UserRequest.java:211)
at hudson.remoting.UserRequest.perform(UserRequest.java:54)
at hudson.remoting.Request$2.run(Request.java:377)
at hudson.remoting.InterceptingExecutorService.lambda$wrap$0(InterceptingExecutorService.java:78)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
ERROR: Failed to parse POMs
java.io.IOException: Remote call on Channel to Maven [/etc/alternatives/jre_11_openjdk/bin/java, -Xmx8192m, -XX:+UseParallelGC, -Duser.language=en, -Duser.country=GB, -verbose:gc, -cp, /var/lib/jenkins/maven35-agent.jar:/opt/maven/boot/plexus-classworlds-2.5.2.jar:/opt/maven/conf/logging, jenkins.maven3.agent.Maven35Main, /opt/maven/, /opt/swarm-client-3.39.jar, /var/lib/jenkins/maven35-interceptor.jar, /var/lib/jenkins/maven3-interceptor-commons.jar, 46713] failed
at hudson.remoting.Channel.call(Channel.java:1004)
at hudson.maven.ProcessCache$MavenProcess.call(ProcessCache.java:161)
at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.doRun(MavenModuleSetBuild.java:877)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:526)
at hudson.model.Run.execute(Run.java:1900)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543)
at hudson.model.ResourceController.execute(ResourceController.java:107)
at hudson.model.Executor.run(Executor.java:449)
Caused by: java.lang.LinkageError: loader constraint violation: loader org.codehaus.plexus.classworlds.realm.ClassRealm @6acbcfc0 wants to load interface org.slf4j.Logger. A different interface with the same name was previously loaded by org.codehaus.plexus.classworlds.realm.ClassRealm @27bc2616. (org.slf4j.Logger is in unnamed module of loader org.codehaus.plexus.classworlds.realm.ClassRealm @27bc2616, parent loader 'app')
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:555)
at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:458)
at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:452)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:451)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:401)
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)
at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
at org.apache.maven.cli.event.ExecutionEventLogger.<init>(ExecutionEventLogger.java:69)
at hudson.maven.util.ExecutionEventLogger.<init>(ExecutionEventLogger.java:65)
at hudson.maven.Maven3Builder$MavenExecutionListener.<init>(Maven3Builder.java:375)
at hudson.maven.Maven3Builder$JenkinsEventSpy.<init>(Maven3Builder.java:199)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:119)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:70)
at hudson.remoting.UserRequest.perform(UserRequest.java:211)
at hudson.remoting.UserRequest.perform(UserRequest.java:54)
at hudson.remoting.Request$2.run(Request.java:377)
at hudson.remoting.InterceptingExecutorService.lambda$wrap$0(InterceptingExecutorService.java:78)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Suppressed: hudson.remoting.Channel$CallSiteStackTrace: Remote call to Channel to Maven [/etc/alternatives/jre_11_openjdk/bin/java, -Xmx8192m, -XX:+UseParallelGC, -Duser.language=en, -Duser.country=GB, -verbose:gc, -cp, /var/lib/jenkins/maven35-agent.jar:/opt/maven/boot/plexus-classworlds-2.5.2.jar:/opt/maven/conf/logging, jenkins.maven3.agent.Maven35Main, /opt/maven/, /opt/swarm-client-3.39.jar, /var/lib/jenkins/maven35-interceptor.jar, /var/lib/jenkins/maven3-interceptor-commons.jar, 46713]
at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1784)
at hudson.remoting.UserRequest$ExceptionResponse.retrieve(UserRequest.java:356)
at hudson.remoting.Channel.call(Channel.java:1000)
at hudson.maven.ProcessCache$MavenProcess.call(ProcessCache.java:161)
at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.doRun(MavenModuleSetBuild.java:877)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:526)
at hudson.model.Run.execute(Run.java:1900)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543)
at hudson.model.ResourceController.execute(ResourceController.java:107)
at hudson.model.Executor.run(Executor.java:449)
channel stopped
[CucumberReport] Using Cucumber Reports version 5.6.1
[CucumberReport] JSON report directory is "get-automated-testing/target"
[CucumberReport] Copied 0 properties files from workspace "/var/lib/jenkins/workspace/Aurora-QA-Integration Testing-E2E/get-automated-testing/target" to reports directory "/var/lib/jenkins/jobs/Aurora-QA-Integration Testing-E2E/builds/1708/cucumber-html-reports/.cache"
[CucumberReport] Copied 0 files from workspace "/var/lib/jenkins/workspace/Aurora-QA-Integration Testing-E2E/get-automated-testing/target" to reports directory "/var/lib/jenkins/jobs/Aurora-QA-Integration Testing-E2E/builds/1708/cucumber-html-reports/.cache"
[CucumberReport] Processing 0 json files:
[CucumberReport] Missing report result - report was not successfully completed
[CucumberReport] Build status is changed to null
Finished: FAILURE`
I don't have sl4j as a dependency in my pom but I have the following:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j.version}</version>
</dependency>
I tried adding provided to both of the above dependencies, but without any luck.
Can anyone please help?
Thank you