Invalid encoded sequence when connecting Windows Agent with Bitvise SSH Server

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

XMLWordPrintable

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Minor
    • Component/s: remoting, ssh-slaves-plugin
    • Environment:

      I'm trying to launch a Windows Jenkins agent via SSH. In our company we have successfully used Bitvise SSH Server for the recent years (mainly for SFTP file operations) so we would like to avoid installing a second SSH server on those machines.

      Unfortunately we are getting the following stack trace when launching the agent:

      Exception in thread "main" java.io.IOException: Invalid encoded sequence encountered: 00 00 00 00
      	at hudson.remoting.BinarySafeStream$1._read(BinarySafeStream.java:194)
      	at hudson.remoting.BinarySafeStream$1.read(BinarySafeStream.java:125)
      	at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2663)
      	at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2679)
      	at java.io.ObjectInputStream$BlockDataInputStream.readUTFBody(ObjectInputStream.java:3426)
      	at java.io.ObjectInputStream$BlockDataInputStream.readUTF(ObjectInputStream.java:3226)
      	at java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1133)
      	at java.io.ObjectStreamClass.readNonProxy(ObjectStreamClass.java:768)
      	at java.io.ObjectInputStream.readClassDescriptor(ObjectInputStream.java:891)
      	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1857)
      	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
      	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
      	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
      	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
      	at hudson.remoting.Capability.read(Capability.java:170)
      	at hudson.remoting.ChannelBuilder.negotiate(ChannelBuilder.java:441)
      	at hudson.remoting.ChannelBuilder.build(ChannelBuilder.java:360)
      	at hudson.remoting.Launcher.main(Launcher.java:743)
      	at hudson.remoting.Launcher.runWithStdinStdout(Launcher.java:691)
      	at hudson.remoting.Launcher.run(Launcher.java:373)
      	at hudson.remoting.Launcher.main(Launcher.java:283)
      ERROR: Unexpected error in launching a agent. This is probably a bug in Jenkins.
      hudson.remoting.RequestAbortedException: java.io.IOException: Unexpected termination of the channel
      	at hudson.remoting.Request.abort(Request.java:340)
      	at hudson.remoting.Channel.terminate(Channel.java:1040)
      	at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:94)
      	Suppressed: hudson.remoting.Channel$CallSiteStackTrace: Remote call to SERVER01234
      		at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1743)
      		at hudson.remoting.Request.call(Request.java:202)
      		at hudson.remoting.Channel.call(Channel.java:956)
      		at hudson.slaves.SlaveComputer.setChannel(SlaveComputer.java:626)
      		at hudson.slaves.SlaveComputer.setChannel(SlaveComputer.java:432)
      		at hudson.plugins.sshslaves.SSHLauncher.startAgent(SSHLauncher.java:1034)
      		at hudson.plugins.sshslaves.SSHLauncher.access$500(SSHLauncher.java:128)
      		at hudson.plugins.sshslaves.SSHLauncher$2.call(SSHLauncher.java:868)
      		at hudson.plugins.sshslaves.SSHLauncher$2.call(SSHLauncher.java:833)
      		at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      		at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
      		at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
      		at java.base/java.lang.Thread.run(Thread.java:834)
      Caused by: java.io.IOException: Unexpected termination of the channel
      	at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:77)
      Caused by: java.io.EOFException
      	at java.base/java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2763)
      	at java.base/java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:3258)
      	at java.base/java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:873)
      	at java.base/java.io.ObjectInputStream.<init>(ObjectInputStream.java:350)
      	at hudson.remoting.ObjectInputStreamEx.<init>(ObjectInputStreamEx.java:49)
      	at hudson.remoting.Command.readFrom(Command.java:140)
      	at hudson.remoting.Command.readFrom(Command.java:126)
      	at hudson.remoting.AbstractSynchronousByteArrayCommandTransport.read(AbstractSynchronousByteArrayCommandTransport.java:36)
      	at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:63)
      [05/14/19 12:43:59] Launch failed - cleaning up connection
      ERROR: Connection terminated
      java.io.EOFException
      	at java.base/java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2763)
      	at java.base/java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:3258)
      	at java.base/java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:873)
      	at java.base/java.io.ObjectInputStream.<init>(ObjectInputStream.java:350)
      	at hudson.remoting.ObjectInputStreamEx.<init>(ObjectInputStreamEx.java:49)
      	at hudson.remoting.Command.readFrom(Command.java:140)
      	at hudson.remoting.Command.readFrom(Command.java:126)
      	at hudson.remoting.AbstractSynchronousByteArrayCommandTransport.read(AbstractSynchronousByteArrayCommandTransport.java:36)
      	at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:63)
      Caused: java.io.IOException: Unexpected termination of the channel
      	at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:77)
      

      I've additionally tried it with Win32-OpenSSH (https://github.com/PowerShell/Win32-OpenSSH) and the agent started successfully.

      Any idea what goes wrong with the Bitvise SSH Server implementation? Is there any way to further debug this? I attached the full master logs (anonymized) to this issue.

            Assignee:
            Unassigned
            Reporter:
            Robin Jansohn
            Archiver:
            Jenkins Service Account

              Created:
              Updated:
              Archived: