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

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

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Blocker Blocker
    • core
    • openjdk-6 on Debian/wheezy

      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.

            kohsuke Kohsuke Kawaguchi
            mika Michael Prokop
            Votes:
            3 Vote for this issue
            Watchers:
            13 Start watching this issue

              Created:
              Updated:
              Resolved: