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
'CI&CD > jenkins' 카테고리의 다른 글
[SSH] Exception:channel is not opened. (0) | 2023.03.23 |
---|---|
[jenkins] parameter만 다른 job 병렬실행 (0) | 2022.11.03 |
[jenkins]이중화(백업) (0) | 2022.08.01 |
[jenkins] pipeline 요약 (0) | 2022.07.28 |
[jenkins] jenkins 계정으로 로그인 하는 법 (0) | 2022.07.18 |