본문 바로가기

CI&CD/jenkins

ERROR: Unexpected error in launching an agent. This is probably a bug in Jenkins

728x90

Jenkins에서 마이그레이션중 build node 연결 중에 에러 발생

[07/30/24 11:13:21] [SSH] Checking java version of java
[07/30/24 11:13:21] [SSH] java -version returned 17.0.7.
[07/30/24 11:13:21] [SSH] Starting sftp client.
[07/30/24 11:13:21] [SSH] Copying latest remoting.jar...
Source agent hash is -------------------. Installed agent hash is ---------------------
Verified agent jar. No update is necessary.
Expanded the channel window size to 4MB
[07/30/24 11:13:21] [SSH] Starting agent process: cd "/home/jenkins_user" && java  -jar remoting.jar -workDir /home/jenkins_user -jar-cache /home/jenkins_user/remoting/jarCache
Jul 30, 2024 2:13:21 AM org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir
INFO: Using /home/jenkins_user/remoting as a remoting work directory
Jul 30, 2024 2:13:21 AM org.jenkinsci.remoting.engine.WorkDirManager setupLogging
INFO: Both error and output logs will be printed to /home/jenkins_user/remoting
<===[JENKINS REMOTING CAPACITY]===>channel started
Remoting version: 3131.vf2b_b_798b_ce99
Launcher: SSHLauncher
Communication Protocol: Standard in/out
This is a Unix agent
ERROR: Unexpected error in launching an agent. This is probably a bug in Jenkins
Also:   hudson.remoting.Channel$CallSiteStackTrace: Remote call to node
		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.FilePath.act(FilePath.java:1283)
		at org.jenkinsci.plugins.envinject.EnvInjectComputerListener.onOnline(EnvInjectComputerListener.java:144)
		at hudson.slaves.SlaveComputer.setChannel(SlaveComputer.java:747)
		at hudson.slaves.SlaveComputer.setChannel(SlaveComputer.java:437)
		at hudson.plugins.sshslaves.SSHLauncher.startAgent(SSHLauncher.java:645)
		at hudson.plugins.sshslaves.SSHLauncher.lambda$launch$0(SSHLauncher.java:465)
		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)
java.lang.reflect.InaccessibleObjectException: Unable to make private native java.lang.reflect.Field[] java.lang.Class.getDeclaredFields0(boolean) accessible: module java.base does not "opens java.lang" to unnamed module @700f553d
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
	at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199)
	at java.base/java.lang.reflect.Method.setAccessible(Method.java:193)
	at org.jenkinsci.plugins.envinject.service.EnvInjectMasterEnvVarsSetter.getModifiers(EnvInjectMasterEnvVarsSetter.java:29)
	at org.jenkinsci.plugins.envinject.service.EnvInjectMasterEnvVarsSetter.call(EnvInjectMasterEnvVarsSetter.java:55)
	at org.jenkinsci.plugins.envinject.service.EnvInjectMasterEnvVarsSetter.call(EnvInjectMasterEnvVarsSetter.java:19)
	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:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
Agent successfully connected and online

 

에러를 그대로 검색하니 아래와 같은 내용을 찾았다.

 

While upgrading Jenkins to 2.426.2 I am getting below when connecting a node to the Jenkins server

Thanks Alex for pointing me in the right direction. Looks like it is a bug with JDK11. I am on JDK17 with Jenkins version. Even though I downgraded the plugin to the earlier version I am still seeing the issue. Steps followed: Downgraded the plugin to 2.86

community.jenkins.io

target node의 JDK 버전이 17이면 발생하는 문제인것같다.

JDK17이면 추가적으로 add-opens 옵션을 추가해야한다.

 

나는 ssh를 통해 연결하므로 아래와같은 옵션을 추가한다.

 

Dashboard -> Manage Jenkins -> Nodes -> <TARGET_NODE> -> configure -> Adbanced -> JVM Options

--add-opens java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED

 

 

저장 후 disconnect -> lunch agent

정상 연결 확인 완료

728x90