Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-35273

"Keep this slave on-line as much as possible" won't reconnect after ping timeout

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Icon: Minor Minor
    • core, ssh-slaves-plugin
    • None
    • Jenkins ver. 1.651.1

      I have SSH slaves that periodically reboot. When they do, Jenkins never reconnects.

      The help text for "Keep this slave on-line as much as possible" says:

      This is the default and normal setting. In this mode, Jenkins uses tries to keep the slave on-line. If Jenkins can start the slave without user assistance, it will periodically attempt to restart the slave if it is unavailable. Jenkins will not take the slave off-line.

      Instead, it just sits there (for days even) unless a human clicks the "Launch Agent" button.

      The status is "Ping response time is too long or timed out." and the log shows:

      ERROR: Connection terminated
      java.io.IOException: Unexpected termination of the channel
      	at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:50)
      Caused by: java.io.EOFException
      	at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2353)
      	at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2822)
      	at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:804)
      	at java.io.ObjectInputStream.<init>(ObjectInputStream.java:301)
      	at hudson.remoting.ObjectInputStreamEx.<init>(ObjectInputStreamEx.java:48)
      	at hudson.remoting.AbstractSynchronousByteArrayCommandTransport.read(AbstractSynchronousByteArrayCommandTransport.java:34)
      	at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:48)
      ERROR: Socket connection to SSH server was lost
      java.net.SocketException: Connection reset
      	at java.net.SocketInputStream.read(SocketInputStream.java:209)
      	at java.net.SocketInputStream.read(SocketInputStream.java:141)
      	at com.trilead.ssh2.crypto.cipher.CipherInputStream.fill_buffer(CipherInputStream.java:41)
      	at com.trilead.ssh2.crypto.cipher.CipherInputStream.internal_read(CipherInputStream.java:52)
      	at com.trilead.ssh2.crypto.cipher.CipherInputStream.getBlock(CipherInputStream.java:79)
      	at com.trilead.ssh2.crypto.cipher.CipherInputStream.read(CipherInputStream.java:108)
      	at com.trilead.ssh2.transport.TransportConnection.receiveMessage(TransportConnection.java:232)
      	at com.trilead.ssh2.transport.TransportManager.receiveLoop(TransportManager.java:693)
      	at com.trilead.ssh2.transport.TransportManager$1.run(TransportManager.java:489)
      	at java.lang.Thread.run(Thread.java:745)
      Slave JVM has not reported exit code before the socket was lost
      

            ifernandezcalvo Ivan Fernandez Calvo
            docwhat Christian Höltje
            Votes:
            5 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: