Jenkins >=1.560 breaks Jenkins slave handling / NIO JNLP related (using swarm plugin)

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

XMLWordPrintable

      My Jenkins slaves are connected via the swarm plugin (tested with swarm-client-1.10 and swarm-client-1.15), as soon as I upgrade Jenkins master to 1.560 Jenkins jobs very soon die with (quoting Jenkins job output):

      09:17:44 FATAL: hudson.remoting.RequestAbortedException: java.nio.channels.ClosedByInterruptException
      09:17:44 hudson.remoting.RequestAbortedException: hudson.remoting.RequestAbortedException: java.nio.channels.ClosedByInterruptException
      09:17:44 at hudson.remoting.RequestAbortedException.wrapForRethrow(RequestAbortedException.java:41)
      09:17:44 at hudson.remoting.RequestAbortedException.wrapForRethrow(RequestAbortedException.java:34)
      09:17:44 at hudson.remoting.Request.call(Request.java:174)
      09:17:44 at hudson.remoting.Channel.call(Channel.java:738)
      09:17:44 at hudson.remoting.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:168)
      09:17:44 at com.sun.proxy.$Proxy57.join(Unknown Source)
      09:17:44 at hudson.Launcher$RemoteLauncher$ProcImpl.join(Launcher.java:951)
      09:17:44 at hudson.tasks.CommandInterpreter.join(CommandInterpreter.java:137)
      09:17:44 at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:97)
      09:17:44 at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:66)
      09:17:44 at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
      09:17:44 at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:740)
      09:17:44 at hudson.model.Build$BuildExecution.build(Build.java:198)
      09:17:44 at hudson.model.Build$BuildExecution.doRun(Build.java:159)
      09:17:44 at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:519)
      09:17:44 at hudson.model.Run.execute(Run.java:1703)
      09:17:44 at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
      09:17:44 at hudson.model.ResourceController.execute(ResourceController.java:88)
      09:17:44 at hudson.model.Executor.run(Executor.java:231)
      09:17:44 Caused by: hudson.remoting.RequestAbortedException: java.nio.channels.ClosedByInterruptException
      09:17:44 at hudson.remoting.Request.abort(Request.java:299)
      09:17:44 at hudson.remoting.Channel.terminate(Channel.java:801)
      09:17:44 at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:69)
      09:17:44 Caused by: java.nio.channels.ClosedByInterruptException
      09:17:44 at java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterruptibleChannel.java:201)
      09:17:44 at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:281)
      09:17:44 at hudson.remoting.SocketChannelStream$1.read(SocketChannelStream.java:33)
      09:17:44 at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:65)
      09:17:44 at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:109)
      09:17:44 at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:103)
      09:17:44 at java.io.InputStream.read(InputStream.java:101)
      09:17:44 at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:81)
      09:17:44 at hudson.remoting.FlightRecorderInputStream.read(FlightRecorderInputStream.java:77)
      09:17:44 at java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2291)
      09:17:44 at java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2584)
      09:17:44 at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2594)
      09:17:44 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1317)
      09:17:44 at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
      09:17:44 at hudson.remoting.Command.readFrom(Command.java:92)
      09:17:44 at hudson.remoting.ClassicCommandTransport.read(ClassicCommandTransport.java:70)
      09:17:44 at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:48)

      ... and the slaves get disconnected, quoting from jenkins.log:

      Apr 25, 2014 9:40:34 AM jenkins.slaves.JnlpSlaveAgentProtocol$Handler$1 onClosed
      WARNING: Channel reader thread: jenkins-slave6 for + jenkins-slave6 terminated
      java.nio.channels.ClosedChannelException
      at sun.nio.ch.SocketChannelImpl.ensureReadOpen(SocketChannelImpl.java:131)
      at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:174)
      at hudson.remoting.SocketChannelStream$1.read(SocketChannelStream.java:33)
      at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:65)
      at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:109)
      at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:103)
      at hudson.remoting.FlightRecorderInputStream.read(FlightRecorderInputStream.java:85)
      at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2308)
      at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2321)
      at java.io.ObjectInputStream$BlockDataInputStream.readInt(ObjectInputStream.java:2816)
      at java.io.ObjectInputStream.readHandle(ObjectInputStream.java:1451)
      at java.io.ObjectInputStream.readTypeString(ObjectInputStream.java:1417)
      at java.io.ObjectStreamClass.readNonProxy(ObjectStreamClass.java:680)
      at java.io.ObjectInputStream.readClassDescriptor(ObjectInputStream.java:829)
      at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1600)
      at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1516)
      at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1621)
      at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1516)
      at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1621)
      at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1516)
      at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770)
      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1349)
      at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1989)
      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1914)
      at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1797)
      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1349)
      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
      at hudson.remoting.Command.readFrom(Command.java:92)
      at hudson.remoting.ClassicCommandTransport.read(ClassicCommandTransport.java:70)
      at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:48)

      AFAICS this seems to be related to the following Git commit:

      commit d4c74bf35d4d04bf289b020efd29f827458e0e11
      Author: Kohsuke Kawaguchi <kk@kohsuke.org>
      Date: Fri Apr 4 17:39:44 2014 -0700

      Integrated NIO JNLP slaves handling

      ]

      Downgrading to Jenkins v1.559 again works around the issue.

            Assignee:
            Kohsuke Kawaguchi
            Reporter:
            Michael Prokop
            Archiver:
            Jenkins Service Account

              Created:
              Updated:
              Resolved:
              Archived: