Jenkins slave Windows service does not reconnect on master failure

This issue is archived. You can view it, but you can't modify it. Learn more

XMLWordPrintable

    • Type: Bug
    • Resolution: Duplicate
    • Priority: Major
    • Component/s: core
    • Environment:
      Jenkins 1.484 on RHEL 5 x86_64, Windows slave connected by JNLP through Windows service

      I have set up Jenkins slave Windows service so that it is restarted by system on failure. It works OK if slave fails for whatever reasons. Unfortunately recently master keeps failing due to out of memory problems and after master reboot some Windows slave do not reconnect. Service has to be restarted in order to connect slave again.

      jenkins-slave.err.log

      Oct 02, 2012 3:59:10 PM hudson.remoting.jnlp.Main$CuiListener <init>
      INFO: Hudson agent is running in headless mode.
      Oct 02, 2012 3:59:10 PM hudson.remoting.jnlp.Main$CuiListener status
      INFO: Locating server among http://server:8080/
      Oct 02, 2012 3:59:10 PM hudson.remoting.jnlp.Main$CuiListener status
      INFO: Connecting to server:21234
      Oct 02, 2012 3:59:10 PM hudson.remoting.jnlp.Main$CuiListener status
      INFO: Handshaking
      Oct 02, 2012 3:59:11 PM hudson.remoting.jnlp.Main$CuiListener status
      INFO: Connected
      Oct 03, 2012 8:11:21 AM hudson.remoting.jnlp.Main$CuiListener status
      INFO: Terminated
      Oct 03, 2012 8:12:22 AM hudson.remoting.jnlp.Main$CuiListener status
      INFO: Locating server among http://server:8080/
      Oct 03, 2012 8:12:22 AM hudson.remoting.jnlp.Main$CuiListener status
      INFO: Connecting to server:21234
      Oct 03, 2012 8:12:22 AM hudson.remoting.jnlp.Main$CuiListener status
      INFO: Handshaking
      Oct 03, 2012 8:12:22 AM hudson.remoting.jnlp.Main$CuiListener status
      INFO: Connected
      Oct 03, 2012 8:15:19 AM hudson.remoting.jnlp.Main$CuiListener status
      INFO: Terminated
      Oct 03, 2012 8:15:59 AM hudson.remoting.jnlp.Main$CuiListener status
      INFO: Locating server among http://server:8080/
      Oct 03, 2012 8:15:59 AM hudson.remoting.jnlp.Main$CuiListener status
      INFO: Connecting to server:21234
      Oct 03, 2012 8:15:59 AM hudson.remoting.jnlp.Main$CuiListener status
      INFO: Handshaking
      Oct 03, 2012 8:15:59 AM hudson.remoting.jnlp.Main$CuiListener status
      INFO: Connected
      Oct 03, 2012 9:44:59 PM hudson.slaves.ChannelPinger$1 onDead
      INFO: Ping failed. Terminating the channel.
      java.util.concurrent.TimeoutException: Ping started on 1349293259718 hasn't completed at 1349293499718
      at hudson.remoting.PingThread.ping(PingThread.java:120)
      at hudson.remoting.PingThread.run(PingThread.java:81)

      Oct 03, 2012 9:44:59 PM hudson.remoting.SynchronousCommandTransport$ReaderThread run
      SEVERE: I/O error in channel channel
      java.net.SocketException: socket closed
      at java.net.SocketInputStream.socketRead0(Native Method)
      at java.net.SocketInputStream.read(Unknown Source)
      at java.net.SocketInputStream.read(Unknown Source)
      at java.io.BufferedInputStream.fill(Unknown Source)
      at java.io.BufferedInputStream.read(Unknown Source)
      at java.io.ObjectInputStream$PeekInputStream.peek(Unknown Source)
      at java.io.ObjectInputStream$BlockDataInputStream.peek(Unknown Source)
      at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source)
      at java.io.ObjectInputStream.readObject0(Unknown Source)
      at java.io.ObjectInputStream.readObject(Unknown Source)
      at hudson.remoting.Command.readFrom(Command.java:90)
      at hudson.remoting.ClassicCommandTransport.read(ClassicCommandTransport.java:59)
      at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:48)

      Oct 03, 2012 9:44:59 PM hudson.remoting.jnlp.Main$CuiListener status
      INFO: Terminated
      Oct 04, 2012 4:20:07 PM hudson.remoting.jnlp.Main$CuiListener <init>
      INFO: Hudson agent is running in headless mode.
      Oct 04, 2012 4:20:07 PM hudson.remoting.jnlp.Main$CuiListener status
      INFO: Locating server among http://server:8080/
      Oct 04, 2012 4:20:07 PM hudson.remoting.jnlp.Main$CuiListener status
      INFO: Connecting to server:21234
      Oct 04, 2012 4:20:07 PM hudson.remoting.jnlp.Main$CuiListener status
      INFO: Handshaking
      Oct 04, 2012 4:20:07 PM hudson.remoting.jnlp.Main$CuiListener status
      INFO: Connected

      jenkins-slave.wrapper.log

      2012-10-02 15:59:10 - Starting C:\Program Files\Java\jre7\bin\java.exe -Xrs -jar "C:\Jenkins\slave.jar" -jnlpUrl http://server:8080/computer/slave-1/slave-agent.jnlp
      2012-10-02 15:59:10 - Started 5680
      2012-10-04 16:20:05 - Stopping jenkinsslave-C__Jenkins
      2012-10-04 16:20:05 - ProcessKill 5680
      2012-10-04 16:20:05 - Finished jenkinsslave-C__Jenkins
      2012-10-04 16:20:06 - Starting C:\Program Files\Java\jre7\bin\java.exe -Xrs -jar "C:\Jenkins\slave.jar" -jnlpUrl http://server:8080/computer/slave-1/slave-agent.jnlp
      2012-10-04 16:20:06 - Started 6464

      Note that before exception slave itself reconnected many times to master, but after exception it did not recover until service was restarted.

            Assignee:
            Unassigned
            Reporter:
            Krzysztof Malinowski
            Archiver:
            Jenkins Service Account

              Created:
              Updated:
              Resolved:
              Archived: