개요

허드슨이나 젠킨스를 사용하다 보면 build job process가 종료 됨에 따라 로그 job을 보거나 배포 스크립트를 돌릴때 쉘 스크립트 보다 job 자체 종료가 더 먼저 일어나서
오류가 발생하는 케이스가 있다. 예를 들면 아래와 같은 에러가 발생하는 케이스가 있다. 이때 해결책을 찾아보고 공유한다.

FATAL: Remote call on 노드이름 failed
java.io.IOException: Remote call on mphtradm01 failed
    at hudson.remoting.Channel.call(Channel.java:659)
    at hudson.Launcher$RemoteLauncher.kill(Launcher.java:745)
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:450)
    at hudson.model.Run.run(Run.java:1366)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:145)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class hudson.util.ProcessTree$UnixReflection
    at hudson.util.ProcessTree$UnixProcess.kill(ProcessTree.java:532)
    at hudson.util.ProcessTree$UnixProcess.killRecursively(ProcessTree.java:552)
    at hudson.util.ProcessTree$UnixProcess.killRecursively(ProcessTree.java:551)
    at hudson.util.ProcessTree$Unix.killAll(ProcessTree.java:476)
    at hudson.Launcher$RemoteLauncher$KillTask.call(Launcher.java:757)
    at hudson.Launcher$RemoteLauncher$KillTask.call(Launcher.java:748)
    at hudson.remoting.UserRequest.perform(UserRequest.java:114)
    at hudson.remoting.UserRequest.perform(UserRequest.java:48)
    at hudson.remoting.Request$2.run(Request.java:283)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

적용방법

# Set environment variable,Variable Name/Value 자리에 아래 설정
BUILD_ID=dontKillMe