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

JNLP Slave on Windows Server 2012 will not reconnect to master after network disconnect/reconnect

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Blocker Blocker
    • remoting
    • Master running Jenkins 1.460 on Windows Server 2008 R2, slave running JNLP as Windows service on Windows Server 2012

      I have a JNLP slave running on a remote Windows server. Due to the fact that communication goes over the internet, at times the connectivity between the master and the slave will be broken.

      When connectivity is reestablished though the slave will not try to reconnect with the master. A reset of the Windows service hosting the slave re-established connection and the slave becomes available in the master.

      An error message is recorded here. This error as far as I can see occurs at the time network connectivity is lost, and the "INFO: Terminated" shows that slave indeed have "died".
      NOTE: even though the Java code has terminated, the Windows service is still running.

      feb 17, 2013 3:33:18 AM hudson.remoting.jnlp.Main$CuiListener <init>
      INFO: Hudson agent is running in headless mode.
      feb 17, 2013 3:33:18 AM hudson.remoting.jnlp.Main$CuiListener status
      INFO: Locating server among https://externalyavailabledomain/build/, http://internalmasterserver:8080/build/
      feb 17, 2013 3:33:19 AM hudson.remoting.jnlp.Main$CuiListener status
      INFO: Connecting to externalyavailabledomain:50456
      feb 17, 2013 3:33:19 AM hudson.remoting.jnlp.Main$CuiListener status
      INFO: Handshaking
      feb 17, 2013 3:33:19 AM hudson.remoting.jnlp.Main$CuiListener status
      INFO: Connected
      feb 17, 2013 1:59:20 PM hudson.remoting.SynchronousCommandTransport$ReaderThread run
      SEVERE: I/O error in channel channel
      java.net.SocketException: Connection reset
      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)

      feb 17, 2013 1:59:20 PM hudson.remoting.jnlp.Main$CuiListener status
      INFO: Terminated

            kohsuke Kohsuke Kawaguchi
            plillevold Peter Lillevold
            Votes:
            6 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: