I have inherited Jenkins form a previous co-worker. Unfortunately, he did this without bringing anyone else on it, so my knowledge of Jenkins is nothing more than writing scripts and throwing them up in the dashboard. I apologize upfront for missing something if I did.
I noticed this week that a couple of reports weren't coming in. When I jumped on the Jenkins dashboard, it shows that the slave is offline. I logged into the Windows server where the Jenkins slave is installed, I tried to run the exe, and get this error:
Unable to Run Jenkins-Slave.exe
So that's when I checked out the services, and found out that the Jenkins service wasn't running. I tried to run it, and I get this error:
Unable to Run Jenkins Slave Service
Because I don't really understand the ins and outs of this, I'm not too sure how to fix it. I tried restarting the server where the slave is located as well as restarting the master, but I don't get any change.
Again, I'm not too savvy with this, so any help would be greatly appreciated!
Edit: Requested by commentors, this is the information I am seeing from the logs. Looking at the slave.out.log, all I am seeing is this repeating:
Both error and output logs will be printed to C:\Temp\JenkinsSlave\remoting
I am seeing this in the slave.err.log. These are the last entries in there. They are the exact same logs that were in the log file located at C:\Temp\JenkinsSlave\remoting:
Jul 28, 2018 7:01:46 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connecting to jenkinsmaster:61069
Jul 28, 2018 7:01:46 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Server reports protocol JNLP4-plaintext not supported, skipping
Jul 28, 2018 7:01:46 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Server reports protocol JNLP3-connect not supported, skipping
Jul 28, 2018 7:01:46 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Server reports protocol JNLP2-connect not supported, skipping
Jul 28, 2018 7:01:46 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Server reports protocol JNLP-connect not supported, skipping
Jul 28, 2018 7:01:46 PM hudson.remoting.jnlp.Main$CuiListener error
SEVERE: The server rejected the connection: None of the protocols were accepted
java.lang.Exception: The server rejected the connection: None of the protocols were accepted
at hudson.remoting.Engine.onConnectionRejected(Engine.java:655)
at hudson.remoting.Engine.innerRun(Engine.java:619)
at hudson.remoting.Engine.run(Engine.java:455)
Edit 1: So I was able to bring the slave back online thanks to @MichaelPowers. This was done by performing step 4 in this documentation: How to Setup a node. This worked to bring the slave back online, but I am still unable to run jobs tied to the slave. In the logs, I am seeing this:
`
Aug 06, 2018 1:20:43 PM hudson.remoting.UserRequest perform
WARNING: LinkageError while performing UserRequest:hudson.util.RemotingDiagnostics$GetThreadDump@df9d05
java.lang.LinkageError: Failed to load hudson.init.InitMilestone
at hudson.remoting.RemoteClassLoader.loadClassFile(RemoteClassLoader.java:389)
at hudson.remoting.RemoteClassLoader.findClass(RemoteClassLoader.java:307)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at hudson.util.RemotingDiagnostics$GetThreadDump.call(RemotingDiagnostics.java:98)
at hudson.util.RemotingDiagnostics$GetThreadDump.call(RemotingDiagnostics.java:95)
at hudson.remoting.UserRequest.perform(UserRequest.java:212)
at hudson.remoting.UserRequest.perform(UserRequest.java:54)
at hudson.remoting.Request$2.run(Request.java:369)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at hudson.remoting.Engine$1.lambda$newThread$0(Engine.java:93)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: org/jvnet/hudson/reactor/Milestone
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at hudson.remoting.RemoteClassLoader.loadClassFile(RemoteClassLoader.java:383)
... 14 more
Caused by: java.lang.ClassNotFoundException: org.jvnet.hudson.reactor.Milestone
at hudson.remoting.RemoteClassLoader.findClass(RemoteClassLoader.java:317)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 18 more
Caused by: java.nio.file.AccessDeniedException: C:\Temp\JenkinsSlave\remoting\jarCache\1D\802F741B5EFFEF0E027F560ADF37AB.jar
at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at sun.nio.fs.WindowsFileAttributeViews$Basic.setFileTimes(Unknown Source)
at sun.nio.fs.WindowsFileAttributeViews$Basic.setTimes(Unknown Source)
at java.nio.file.Files.setLastModifiedTime(Unknown Source)
at hudson.remoting.FileSystemJarCache.lookInCache(FileSystemJarCache.java:77)
at hudson.remoting.JarCacheSupport.resolve(JarCacheSupport.java:46)
at hudson.remoting.ResourceImageInJar._resolveJarURL(ResourceImageInJar.java:90)
at hudson.remoting.ResourceImageInJar.resolve(ResourceImageInJar.java:43)
at hudson.remoting.RemoteClassLoader.findClass(RemoteClassLoader.java:304)
... 20 more`
Is there another way to update the slave?
I am also getting this in an email from the failed jobs:
`java.lang.ClassNotFoundException: org.jenkinsci.plugins.gitclient.Git$1
at java.net.URLClassLoader.findClass(Unknown Source)
at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.sun.jnlp.JNLPClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at java.io.ObjectInputStream.resolveClass(Unknown Source)
at hudson.remoting.MultiClassLoaderSerializer$Input.resolveClass(MultiClassLoaderSerializer.java:134)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at hudson.remoting.UserRequest.deserialize(UserRequest.java:291)
at hudson.remoting.UserRequest.perform(UserRequest.java:190)
Also: hudson.remoting.Channel$CallSiteStackTrace: Remote call to JNLP4-connect connection from fhiscripts1.fhi.com/10.1.1.126:62844
at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1741)
at hudson.remoting.UserRequest$ExceptionResponse.retrieve(UserRequest.java:357)
at hudson.remoting.Channel.call(Channel.java:955)
at hudson.FilePath.act(FilePath.java:1036)
at hudson.FilePath.act(FilePath.java:1025)
at org.jenkinsci.plugins.gitclient.Git.getClient(Git.java:137)
at hudson.plugins.git.GitSCM.createClient(GitSCM.java:821)
at hudson.plugins.git.GitSCM.createClient(GitSCM.java:812)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1180)
at hudson.scm.SCM.checkout(SCM.java:504)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1208)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:574)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499)
at hudson.model.Run.execute(Run.java:1798)
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.ClassNotFoundException: Failed to deserialize the Callable object. Perhaps you needed to implement DelegatingCallable?
at hudson.remoting.UserRequest.perform(UserRequest.java:192)
at hudson.remoting.UserRequest.perform(UserRequest.java:54)
at hudson.remoting.Request$2.run(Request.java:369)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at hudson.remoting.Engine$1.lambda$newThread$0(Engine.java:93)
at java.lang.Thread.run(Unknown Source)
Caused: java.io.IOException: Remote call on JNLP4-connect connection from fhiscripts1.fhi.com/10.1.1.126:62844 failed
at hudson.remoting.Channel.call(Channel.java:959)
at hudson.FilePath.act(FilePath.java:1036)
at hudson.FilePath.act(FilePath.java:1025)
at org.jenkinsci.plugins.gitclient.Git.getClient(Git.java:137)
at hudson.plugins.git.GitSCM.createClient(GitSCM.java:821)
at hudson.plugins.git.GitSCM.createClient(GitSCM.java:812)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1180)
at hudson.scm.SCM.checkout(SCM.java:504)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1208)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:574)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499)
at hudson.model.Run.execute(Run.java:1798)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:429)`
Final Edit:
Good news, I guess that once the was able to bring the slave back online, all I needed to do was to update the plugins. I went to Manage Jenkins > Manage Plugins and was able to update all of the plugins that were in need of it. After the restart, I was able to run jobs tied to the slave without issue.
Thanks again for the help!