---- Steps to reproduce
Setup Jenkins (computer "jenkins") with a node "foo" on separate computers.
Browse to the page: http://jenkins:8080/computer/foo/
Ensure the node is running and Idle.
Turn off the node foo computer (without first bringing the Jenkins node offline).
Restart the node and have it reconnect to the network with DHCP. Make sure its IP address changed.
Refresh the page, note the node is offline. The state may be "This node is being launched.", but the log is empty.
Press the "Relaunch slave agent" button. This takes you to the log, which remains empty.
---- Other info
The stack trace from Jenkins shows:
"Channel reader thread: foo" Id=360 Group=main WAITING on com.trilead.ssh2.channel.Channel@66a77259 at java.lang.Object.wait(Native Method) - waiting on com.trilead.ssh2.channel.Channel@66a77259 at java.lang.Object.wait(Object.java:503) at com.trilead.ssh2.channel.FifoBuffer.read(FifoBuffer.java:212) at com.trilead.ssh2.channel.Channel$Output.read(Channel.java:127) at com.trilead.ssh2.channel.ChannelManager.getChannelData(ChannelManager.java:946) at com.trilead.ssh2.channel.ChannelInputStream.read(ChannelInputStream.java:58) at com.trilead.ssh2.SFTPv3Client.readBytes(SFTPv3Client.java:215) at com.trilead.ssh2.SFTPv3Client.receiveMessage(SFTPv3Client.java:240) at com.trilead.ssh2.SFTPv3Client.init(SFTPv3Client.java:864) at com.trilead.ssh2.SFTPv3Client.<init>(SFTPv3Client.java:108) at com.trilead.ssh2.SFTPv3Client.<init>(SFTPv3Client.java:119) at hudson.plugins.sshslaves.SSHLauncher.afterDisconnect(SSHLauncher.java:1160) - locked hudson.plugins.sshslaves.SSHLauncher@1cb4fc57 at hudson.slaves.SlaveComputer$2.onClosed(SlaveComputer.java:443) at hudson.remoting.Channel.terminate(Channel.java:799) at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:69)
---- Workaround
Configure the node, add a dummy value (e.g. "relaunch-1" to the description). Save the new configuration. It will now launch.
There may be a way to script this too...