I set up a freestyle job which has a single "Execute shell" build step, and is run on a remote node. The shell script starts some jobs in the background, then waits for one of them to exit, then kills them all with "killall -9 jobName || echo dead", then at the end it "exit 0" to signal success. There are no post build steps.
Despite "exit 0", the job fails. It would be useful if the "FATAL: Remote call on instance-1 failed" message includes the failure reason.
There are some "Also:" stacktraces printed, see below, which don't appear when the script contains only "exit 0". Do you think these are related to the failure?
How can I find what's causing this failure?
--- Console output below ---
Started by remote host 1.1.1.1
Building remotely on instance-1 (sim) in workspace /path/to/JobName
[JobName] $ /bin/sh -xe /tmp/jenkins6599300392607514127.sh
[...]
+ date
Mon May 6 13:38:06 UTC 2019
+ echo Done
Done
+ exit 0
FATAL: Remote call on instance-1 failed
Also: hudson.remoting.Channel$CallSiteStackTrace: Remote call to channel
at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1737)
at hudson.remoting.Request.call(Request.java:197)
at hudson.remoting.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:281)
at com.sun.proxy.$Proxy6.fetch3(Unknown Source)
at hudson.remoting.RemoteClassLoader.findClass(RemoteClassLoader.java:209)
at java.lang.ClassLoader.loadClass(ClassLoader.java:588)
at java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:315)
at hudson.util.ProcessTree$UnixReflection.<clinit>(ProcessTree.java:778)
at hudson.util.ProcessTree$UnixProcess.kill(ProcessTree.java:726)
at hudson.util.ProcessTree$UnixProcess.killRecursively(ProcessTree.java:747)
at hudson.util.ProcessTree$Unix.killAll(ProcessTree.java:666)
at hudson.Launcher$RemoteLauncher$KillTask.call(Launcher.java:1096)
at hudson.Launcher$RemoteLauncher$KillTask.call(Launcher.java:1087)
at hudson.remoting.UserRequest.perform(UserRequest.java:210)
at hudson.remoting.UserRequest.perform(UserRequest.java:53)
at hudson.remoting.Request$2.run(Request.java:364)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.lang.Thread.run(Thread.java:834)
java.lang.ClassNotFoundException: Classloading from system classloader disabled
at hudson.remoting.RemoteClassLoader$ClassLoaderProxy.fetch4(RemoteClassLoader.java:854)
at hudson.remoting.RemoteClassLoader$ClassLoaderProxy.fetch3(RemoteClassLoader.java:889)
at sun.reflect.GeneratedMethodAccessor9164.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:929)
at hudson.remoting.Request$2.run(Request.java:369)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at org.jenkinsci.remoting.CallableDecorator.call(CallableDecorator.java:19)
at hudson.remoting.CallableDecoratorList$1.call(CallableDecoratorList.java:21)
at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46)
at jenkins.security.ImpersonatingExecutorService$2.call(ImpersonatingExecutorService.java:71)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Also: hudson.remoting.Channel$CallSiteStackTrace: Remote call to instance-1
at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1741)
at hudson.remoting.UserResponse.retrieve(UserRequest.java:389)
at hudson.remoting.Channel.call(Channel.java:955)
at hudson.Launcher$RemoteLauncher.kill(Launcher.java:1084)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:510)
at hudson.model.Run.execute(Run.java:1819)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:429)
Caused: java.lang.LinkageError
at hudson.util.ProcessTree$UnixReflection.<clinit>(ProcessTree.java:789)
at hudson.util.ProcessTree$UnixProcess.kill(ProcessTree.java:726)
at hudson.util.ProcessTree$UnixProcess.killRecursively(ProcessTree.java:747)
at hudson.util.ProcessTree$Unix.killAll(ProcessTree.java:666)
at hudson.Launcher$RemoteLauncher$KillTask.call(Launcher.java:1096)
at hudson.Launcher$RemoteLauncher$KillTask.call(Launcher.java:1087)
at hudson.remoting.UserRequest.perform(UserRequest.java:210)
at hudson.remoting.UserRequest.perform(UserRequest.java:53)
at hudson.remoting.Request$2.run(Request.java:364)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.lang.Thread.run(Thread.java:834)
Caused: java.io.IOException: Remote call on instance-1 failed
at hudson.remoting.Channel.call(Channel.java:961)
at hudson.Launcher$RemoteLauncher.kill(Launcher.java:1084)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:510)
at hudson.model.Run.execute(Run.java:1819)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:429)
Finished: FAILURE