java.lang.LinkageError:加载器约束冲突Jenkins maven

r6hnlfcb  于 2023-06-28  发布在  Jenkins
关注(0)|答案(1)|浏览(234)

我正在测试Jenkins的升级版本(从2.235.1到2.375.1)。我的一个作业在Swarm Client 3.39的Jenkins Agent中运行时失败,并出现以下错误(这在以前的sversion上运行得很好):
在阅读了更多之后,我认为Maven 3和Swarm Client 3.39都有slf 4j依赖性,你们中的任何一个人以前遇到过这个问题吗?https://issues.jenkins.io/browse/JENKINS-42098中报告了类似问题
---------------来自失败Jenkins作业的日志------

`[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`

我的pom中没有sl 4j作为依赖项,但我有以下内容:

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

我尝试在上面的两个依赖项中添加provided,但没有任何效果。
有人能帮忙吗?
谢谢你

sxpgvts3

sxpgvts31#

我认为这可能与这个problem有关,它在早期版本中被修复,但回归。我可以让它在maven 3.0.5中工作,但是jmeter(我正在运行)需要至少3.1.1。

相关问题