• Icon: Improvement Improvement
    • Resolution: Fixed
    • Icon: Major Major
    • remoting
    • None

      Open sourcing the JNLPProtocol4 implementation that combines NIO with TLS encryption to resolve the regression to Thread-per-client in JNLPProtocol3

          [JENKINS-36871] JNLPProtocol4

          Daniel Beck added a comment -

          Merged towards 2.16.

          Daniel Beck added a comment - Merged towards 2.16.

          Daniel Beck added a comment -

          Oops, wasn't fixed by that change.

          Daniel Beck added a comment - Oops, wasn't fixed by that change.

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol2Handler.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol3Handler.java
          http://jenkins-ci.org/commit/remoting/124439ed73fce4be1fddcff40c1c6c85a00dd7ac
          Log:
          JENKINS-36871 Migrate javadoc from classes to be removed

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol2Handler.java src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol3Handler.java http://jenkins-ci.org/commit/remoting/124439ed73fce4be1fddcff40c1c6c85a00dd7ac Log: JENKINS-36871 Migrate javadoc from classes to be removed

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/org/jenkinsci/remoting/util/ByteBufferQueueInputStream.java
          src/test/java/org/jenkinsci/remoting/util/ByteBufferQueueInputStreamTest.java
          http://jenkins-ci.org/commit/remoting/707bfe8df5ba7392c8427b271507db08cba73a6a
          Log:
          JENKINS-36871 Tests had missed some critical bugs in this ByteBufferQueueInputStream

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/org/jenkinsci/remoting/util/ByteBufferQueueInputStream.java src/test/java/org/jenkinsci/remoting/util/ByteBufferQueueInputStreamTest.java http://jenkins-ci.org/commit/remoting/707bfe8df5ba7392c8427b271507db08cba73a6a Log: JENKINS-36871 Tests had missed some critical bugs in this ByteBufferQueueInputStream

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/hudson/remoting/AbstractByteBufferCommandTransport.java
          http://jenkins-ci.org/commit/remoting/7062224c9e8a66a5a8acc405c43162f905158569
          Log:
          JENKINS-36871 Unnecessary reset of length

          • Also causes commands that span multiple frames to be corrupted

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/hudson/remoting/AbstractByteBufferCommandTransport.java http://jenkins-ci.org/commit/remoting/7062224c9e8a66a5a8acc405c43162f905158569 Log: JENKINS-36871 Unnecessary reset of length Also causes commands that span multiple frames to be corrupted

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/org/jenkinsci/remoting/protocol/impl/SSLEngineFilterLayer.java
          http://jenkins-ci.org/commit/remoting/90425ad49bac1e6502ace8ad04006c25ed72da34
          Log:
          JENKINS-36871 Found an infinite loop under certain error state disconnects

          • Don't think this affected any real protocols, but better to fix after finding

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/org/jenkinsci/remoting/protocol/impl/SSLEngineFilterLayer.java http://jenkins-ci.org/commit/remoting/90425ad49bac1e6502ace8ad04006c25ed72da34 Log: JENKINS-36871 Found an infinite loop under certain error state disconnects Don't think this affected any real protocols, but better to fix after finding

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/org/jenkinsci/remoting/util/KeyUtils.java
          http://jenkins-ci.org/commit/remoting/d2504bc8f461e58027b57fa2cde12dfcd7297049
          Log:
          JENKINS-36871 Slightly faster code path to get hex conversion

          • Avoids intermediate String representation. Could probably get faster still with BigInteger and zero-left-pad but it becomes harder to understand

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/org/jenkinsci/remoting/util/KeyUtils.java http://jenkins-ci.org/commit/remoting/d2504bc8f461e58027b57fa2cde12dfcd7297049 Log: JENKINS-36871 Slightly faster code path to get hex conversion Avoids intermediate String representation. Could probably get faster still with BigInteger and zero-left-pad but it becomes harder to understand

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/hudson/remoting/Channel.java
          http://jenkins-ci.org/commit/remoting/0ef5cac61c33550a0de5e94703dd755b5bd179d7
          Log:
          JENKINS-36871 Stop complaining when the channel is already closed

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/hudson/remoting/Channel.java http://jenkins-ci.org/commit/remoting/0ef5cac61c33550a0de5e94703dd755b5bd179d7 Log: JENKINS-36871 Stop complaining when the channel is already closed

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/hudson/remoting/RemoteInvocationHandler.java
          http://jenkins-ci.org/commit/remoting/adc601401d66a01c44d819a56f81c33de9c304b3
          Log:
          JENKINS-36871 When tiered compilation kicks in, sometimes you can get concurrent modification exceptions

          • They'll recover, but better is not to have to worry about it at all

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/hudson/remoting/RemoteInvocationHandler.java http://jenkins-ci.org/commit/remoting/adc601401d66a01c44d819a56f81c33de9c304b3 Log: JENKINS-36871 When tiered compilation kicks in, sometimes you can get concurrent modification exceptions They'll recover, but better is not to have to worry about it at all

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/hudson/remoting/Engine.java
          http://jenkins-ci.org/commit/remoting/9ad1ed1b1d570d184ee5c89f64cf5b597a81d206
          Log:
          JENKINS-36871 Suppress extra socket connection when all protocols have been tried

          • Also better setup of the SSLContext

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/hudson/remoting/Engine.java http://jenkins-ci.org/commit/remoting/9ad1ed1b1d570d184ee5c89f64cf5b597a81d206 Log: JENKINS-36871 Suppress extra socket connection when all protocols have been tried Also better setup of the SSLContext

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/org/jenkinsci/remoting/engine/EngineUtil.java
          http://jenkins-ci.org/commit/remoting/a065e8a9a914e9065fbead57af00715d7d30e0c0
          Log:
          JENKINS-36871 Make the method signature more generic

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/org/jenkinsci/remoting/engine/EngineUtil.java http://jenkins-ci.org/commit/remoting/a065e8a9a914e9065fbead57af00715d7d30e0c0 Log: JENKINS-36871 Make the method signature more generic

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/org/jenkinsci/remoting/engine/Jnlp3ConnectionState.java
          src/main/java/org/jenkinsci/remoting/engine/Jnlp4ConnectionState.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpClientDatabase.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpConnectionState.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol1Handler.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol2Handler.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol3Handler.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol4Handler.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocolHandler.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocolHandlerFactory.java
          src/main/java/org/jenkinsci/remoting/engine/LegacyJnlpConnectionState.java
          src/main/java/org/jenkinsci/remoting/engine/LegacyJnlpProtocolHandler.java
          http://jenkins-ci.org/commit/remoting/6449a73f157f48efe0de53255d22a63734514d42
          Log:
          JENKINS-36871 All the handlers need the client database

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/org/jenkinsci/remoting/engine/Jnlp3ConnectionState.java src/main/java/org/jenkinsci/remoting/engine/Jnlp4ConnectionState.java src/main/java/org/jenkinsci/remoting/engine/JnlpClientDatabase.java src/main/java/org/jenkinsci/remoting/engine/JnlpConnectionState.java src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol1Handler.java src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol2Handler.java src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol3Handler.java src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol4Handler.java src/main/java/org/jenkinsci/remoting/engine/JnlpProtocolHandler.java src/main/java/org/jenkinsci/remoting/engine/JnlpProtocolHandlerFactory.java src/main/java/org/jenkinsci/remoting/engine/LegacyJnlpConnectionState.java src/main/java/org/jenkinsci/remoting/engine/LegacyJnlpProtocolHandler.java http://jenkins-ci.org/commit/remoting/6449a73f157f48efe0de53255d22a63734514d42 Log: JENKINS-36871 All the handlers need the client database

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/org/jenkinsci/remoting/protocol/impl/ChannelApplicationLayer.java
          http://jenkins-ci.org/commit/remoting/8bb6354a188133ea8568bdb332393251ab6b06c1
          Log:
          JENKINS-36871 Correctly detect and report the channel being closed for writing

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/org/jenkinsci/remoting/protocol/impl/ChannelApplicationLayer.java http://jenkins-ci.org/commit/remoting/8bb6354a188133ea8568bdb332393251ab6b06c1 Log: JENKINS-36871 Correctly detect and report the channel being closed for writing

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/org/jenkinsci/remoting/protocol/impl/SSLEngineFilterLayer.java
          http://jenkins-ci.org/commit/remoting/a6e45c52a3643c2384a393e2ee8308853454f887
          Log:
          JENKINS-36871 Don't spam the logs with warnings for closed I/O or refused connections

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/org/jenkinsci/remoting/protocol/impl/SSLEngineFilterLayer.java http://jenkins-ci.org/commit/remoting/a6e45c52a3643c2384a393e2ee8308853454f887 Log: JENKINS-36871 Don't spam the logs with warnings for closed I/O or refused connections

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/test/java/org/jenkinsci/remoting/engine/JnlpProtocolHandlerTest.java
          http://jenkins-ci.org/commit/remoting/0ac6dc3b0acbe7019bceb223e155795364f4678f
          Log:
          JENKINS-36871 Add tests for the JnlpProtocolHandlers

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/test/java/org/jenkinsci/remoting/engine/JnlpProtocolHandlerTest.java http://jenkins-ci.org/commit/remoting/0ac6dc3b0acbe7019bceb223e155795364f4678f Log: JENKINS-36871 Add tests for the JnlpProtocolHandlers

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol1.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol2.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol3.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocolFactory.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpServer3Handshake.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpServerHandshake.java
          src/test/java/org/jenkinsci/remoting/engine/JnlpProtocol1Test.java
          src/test/java/org/jenkinsci/remoting/engine/JnlpProtocol2Test.java
          src/test/java/org/jenkinsci/remoting/engine/JnlpProtocol3Test.java
          src/test/java/org/jenkinsci/remoting/engine/JnlpProtocolTest.java
          http://jenkins-ci.org/commit/remoting/d999b955f2cb7cc62b39944d1cd7c4198c1474a8
          Log:
          JENKINS-36871 Remove dead classes

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol.java src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol1.java src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol2.java src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol3.java src/main/java/org/jenkinsci/remoting/engine/JnlpProtocolFactory.java src/main/java/org/jenkinsci/remoting/engine/JnlpServer3Handshake.java src/main/java/org/jenkinsci/remoting/engine/JnlpServerHandshake.java src/test/java/org/jenkinsci/remoting/engine/JnlpProtocol1Test.java src/test/java/org/jenkinsci/remoting/engine/JnlpProtocol2Test.java src/test/java/org/jenkinsci/remoting/engine/JnlpProtocol3Test.java src/test/java/org/jenkinsci/remoting/engine/JnlpProtocolTest.java http://jenkins-ci.org/commit/remoting/d999b955f2cb7cc62b39944d1cd7c4198c1474a8 Log: JENKINS-36871 Remove dead classes

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/org/jenkinsci/remoting/engine/Jnlp3ConnectionState.java
          src/main/java/org/jenkinsci/remoting/engine/Jnlp4ConnectionState.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpClientDatabase.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpConnectionState.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpConnectionStateListener.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol1Handler.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol2Handler.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol3Handler.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol4Handler.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocolHandler.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocolHandlerFactory.java
          src/main/java/org/jenkinsci/remoting/engine/LegacyJnlpConnectionState.java
          src/main/java/org/jenkinsci/remoting/engine/LegacyJnlpProtocolHandler.java
          src/test/java/org/jenkinsci/remoting/engine/JnlpProtocolHandlerTest.java
          http://jenkins-ci.org/commit/remoting/fc646c3677247843dba5a78a84e03b3d1a81e91a
          Log:
          JENKINS-36871 Fix up javadoc and copyright headers

          Compare: https://github.com/jenkinsci/remoting/compare/d2504bc8f461...fc646c367724

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/org/jenkinsci/remoting/engine/Jnlp3ConnectionState.java src/main/java/org/jenkinsci/remoting/engine/Jnlp4ConnectionState.java src/main/java/org/jenkinsci/remoting/engine/JnlpClientDatabase.java src/main/java/org/jenkinsci/remoting/engine/JnlpConnectionState.java src/main/java/org/jenkinsci/remoting/engine/JnlpConnectionStateListener.java src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol1Handler.java src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol2Handler.java src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol3Handler.java src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol4Handler.java src/main/java/org/jenkinsci/remoting/engine/JnlpProtocolHandler.java src/main/java/org/jenkinsci/remoting/engine/JnlpProtocolHandlerFactory.java src/main/java/org/jenkinsci/remoting/engine/LegacyJnlpConnectionState.java src/main/java/org/jenkinsci/remoting/engine/LegacyJnlpProtocolHandler.java src/test/java/org/jenkinsci/remoting/engine/JnlpProtocolHandlerTest.java http://jenkins-ci.org/commit/remoting/fc646c3677247843dba5a78a84e03b3d1a81e91a Log: JENKINS-36871 Fix up javadoc and copyright headers Compare: https://github.com/jenkinsci/remoting/compare/d2504bc8f461...fc646c367724

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/hudson/remoting/Asynchronous.java
          src/main/java/hudson/remoting/Base64.java
          src/main/java/hudson/remoting/CallableFilter.java
          src/main/java/hudson/remoting/Channel.java
          src/main/java/hudson/remoting/ClassFilter.java
          src/main/java/hudson/remoting/CommandTransport.java
          src/main/java/hudson/remoting/FastPipedInputStream.java
          src/main/java/hudson/remoting/FastPipedOutputStream.java
          src/main/java/hudson/remoting/RemoteClassLoader.java
          src/main/java/org/jenkinsci/remoting/CallableDecorator.java
          src/main/java/org/jenkinsci/remoting/Role.java
          src/main/java/org/jenkinsci/remoting/RoleSensitive.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol3Handler.java
          src/main/java/org/jenkinsci/remoting/util/SettableFuture.java
          http://jenkins-ci.org/commit/remoting/aae74aec41d1c970e60602010ff77cfe0facf96e
          Log:
          JENKINS-36871 Make all the rest of the javadoc work on Java 8's strict validation

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/hudson/remoting/Asynchronous.java src/main/java/hudson/remoting/Base64.java src/main/java/hudson/remoting/CallableFilter.java src/main/java/hudson/remoting/Channel.java src/main/java/hudson/remoting/ClassFilter.java src/main/java/hudson/remoting/CommandTransport.java src/main/java/hudson/remoting/FastPipedInputStream.java src/main/java/hudson/remoting/FastPipedOutputStream.java src/main/java/hudson/remoting/RemoteClassLoader.java src/main/java/org/jenkinsci/remoting/CallableDecorator.java src/main/java/org/jenkinsci/remoting/Role.java src/main/java/org/jenkinsci/remoting/RoleSensitive.java src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol3Handler.java src/main/java/org/jenkinsci/remoting/util/SettableFuture.java http://jenkins-ci.org/commit/remoting/aae74aec41d1c970e60602010ff77cfe0facf96e Log: JENKINS-36871 Make all the rest of the javadoc work on Java 8's strict validation

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol3Handler.java
          http://jenkins-ci.org/commit/remoting/7d003c854d4d8896bd2dcaf664caa1c806987b70
          Log:
          JENKINS-36871 Switch back to a PrintWriter

          Compare: https://github.com/jenkinsci/remoting/compare/fc646c367724...7d003c854d4d

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol3Handler.java http://jenkins-ci.org/commit/remoting/7d003c854d4d8896bd2dcaf664caa1c806987b70 Log: JENKINS-36871 Switch back to a PrintWriter Compare: https://github.com/jenkinsci/remoting/compare/fc646c367724...7d003c854d4d

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/org/jenkinsci/remoting/protocol/IOHub.java
          http://jenkins-ci.org/commit/remoting/38cd6e424705ff64df68080ab0df9a3a4468a56a
          Log:
          JENKINS-36871 Optimize hot code path

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/org/jenkinsci/remoting/protocol/IOHub.java http://jenkins-ci.org/commit/remoting/38cd6e424705ff64df68080ab0df9a3a4468a56a Log: JENKINS-36871 Optimize hot code path

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java
          src/main/java/org/jenkinsci/remoting/util/ByteBufferQueueInputStream.java
          http://jenkins-ci.org/commit/remoting/bbb5865e7cd18ad6854c12ab03d1d5e5e424ec0f
          Log:
          JENKINS-36871 Remove intermediary ByteBuffer.wrap for simple case

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java src/main/java/org/jenkinsci/remoting/util/ByteBufferQueueInputStream.java http://jenkins-ci.org/commit/remoting/bbb5865e7cd18ad6854c12ab03d1d5e5e424ec0f Log: JENKINS-36871 Remove intermediary ByteBuffer.wrap for simple case

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java
          src/main/java/org/jenkinsci/remoting/util/ByteBufferQueueOutputStream.java
          http://jenkins-ci.org/commit/remoting/d40ca3d1870174d017a432b0f85ca40f3ee8c270
          Log:
          JENKINS-36871 Remove intermediary ByteBuffer.wrap for simple case

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java src/main/java/org/jenkinsci/remoting/util/ByteBufferQueueOutputStream.java http://jenkins-ci.org/commit/remoting/d40ca3d1870174d017a432b0f85ca40f3ee8c270 Log: JENKINS-36871 Remove intermediary ByteBuffer.wrap for simple case

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/test/java/org/jenkinsci/remoting/engine/HandlerLoopbackLoadStress.java
          http://jenkins-ci.org/commit/remoting/4bc69f2886d63734e00b000673af4ff00b8f3dd6
          Log:
          JENKINS-36871 Test bed for stressing out handler implementations

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/test/java/org/jenkinsci/remoting/engine/HandlerLoopbackLoadStress.java http://jenkins-ci.org/commit/remoting/4bc69f2886d63734e00b000673af4ff00b8f3dd6 Log: JENKINS-36871 Test bed for stressing out handler implementations

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/org/jenkinsci/remoting/protocol/FilterLayer.java
          src/main/java/org/jenkinsci/remoting/protocol/ProtocolStack.java
          http://jenkins-ci.org/commit/remoting/75c4cf7c8ee6c2c464300efd8664c648ba6d6eb0
          Log:
          JENKINS-36871 Allow a filter to call `completed()` from both the receive and send sides without bombing out.

          Prevents stack traces such as

          ```
          Exception in thread "main" java.lang.IllegalStateException: Filter has already been completed
          at org.jenkinsci.remoting.protocol.FilterLayer.completed(FilterLayer.java:106)
          at org.jenkinsci.remoting.protocol.impl.ConnectionHeadersFilterLayer.complete(ConnectionHeadersFilterLayer.java:365)
          at org.jenkinsci.remoting.protocol.impl.ConnectionHeadersFilterLayer.doSend(ConnectionHeadersFilterLayer.java:498)
          at org.jenkinsci.remoting.protocol.ProtocolStack$Ptr.doSend(ProtocolStack.java:691)
          at org.jenkinsci.remoting.protocol.ApplicationLayer.write(ApplicationLayer.java:157)
          at org.jenkinsci.remoting.protocol.impl.ChannelApplicationLayer.start(ChannelApplicationLayer.java:226)
          at org.jenkinsci.remoting.protocol.ProtocolStack.init(ProtocolStack.java:202)
          at org.jenkinsci.remoting.protocol.ProtocolStack.access$700(ProtocolStack.java:107)
          at org.jenkinsci.remoting.protocol.ProtocolStack$Builder.build(ProtocolStack.java:555)
          at org.jenkinsci.remoting.engine.JnlpProtocol4PlainHandler.connect(JnlpProtocol4PlainHandler.java:149)
          at org.jenkinsci.remoting.engine.JnlpProtocolHandler.connect(JnlpProtocolHandler.java:140)
          at org.jenkinsci.remoting.engine.HandlerLoopbackLoadStress.startClient(HandlerLoopbackLoadStress.java:466)
          at org.jenkinsci.remoting.engine.HandlerLoopbackLoadStress.main(HandlerLoopbackLoadStress.java:426)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke(Method.java:498)
          at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
          ```

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/org/jenkinsci/remoting/protocol/FilterLayer.java src/main/java/org/jenkinsci/remoting/protocol/ProtocolStack.java http://jenkins-ci.org/commit/remoting/75c4cf7c8ee6c2c464300efd8664c648ba6d6eb0 Log: JENKINS-36871 Allow a filter to call `completed()` from both the receive and send sides without bombing out. Prevents stack traces such as ``` Exception in thread "main" java.lang.IllegalStateException: Filter has already been completed at org.jenkinsci.remoting.protocol.FilterLayer.completed(FilterLayer.java:106) at org.jenkinsci.remoting.protocol.impl.ConnectionHeadersFilterLayer.complete(ConnectionHeadersFilterLayer.java:365) at org.jenkinsci.remoting.protocol.impl.ConnectionHeadersFilterLayer.doSend(ConnectionHeadersFilterLayer.java:498) at org.jenkinsci.remoting.protocol.ProtocolStack$Ptr.doSend(ProtocolStack.java:691) at org.jenkinsci.remoting.protocol.ApplicationLayer.write(ApplicationLayer.java:157) at org.jenkinsci.remoting.protocol.impl.ChannelApplicationLayer.start(ChannelApplicationLayer.java:226) at org.jenkinsci.remoting.protocol.ProtocolStack.init(ProtocolStack.java:202) at org.jenkinsci.remoting.protocol.ProtocolStack.access$700(ProtocolStack.java:107) at org.jenkinsci.remoting.protocol.ProtocolStack$Builder.build(ProtocolStack.java:555) at org.jenkinsci.remoting.engine.JnlpProtocol4PlainHandler.connect(JnlpProtocol4PlainHandler.java:149) at org.jenkinsci.remoting.engine.JnlpProtocolHandler.connect(JnlpProtocolHandler.java:140) at org.jenkinsci.remoting.engine.HandlerLoopbackLoadStress.startClient(HandlerLoopbackLoadStress.java:466) at org.jenkinsci.remoting.engine.HandlerLoopbackLoadStress.main(HandlerLoopbackLoadStress.java:426) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) ```

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/org/jenkinsci/remoting/protocol/IOHub.java
          http://jenkins-ci.org/commit/remoting/6da1cb4c1f09583382195b4608a2759d49fd65b3
          Log:
          JENKINS-36871 Using a single final class allows for inlining of hot method

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/org/jenkinsci/remoting/protocol/IOHub.java http://jenkins-ci.org/commit/remoting/6da1cb4c1f09583382195b4608a2759d49fd65b3 Log: JENKINS-36871 Using a single final class allows for inlining of hot method

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/test/java/org/jenkinsci/remoting/util/ByteBufferQueueTest.java
          http://jenkins-ci.org/commit/remoting/d942165c92e31b6b2e716e61e1ce6c9e74269357
          Log:
          JENKINS-36871 Add some more test cases

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/test/java/org/jenkinsci/remoting/util/ByteBufferQueueTest.java http://jenkins-ci.org/commit/remoting/d942165c92e31b6b2e716e61e1ce6c9e74269357 Log: JENKINS-36871 Add some more test cases

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/org/jenkinsci/remoting/protocol/IOHub.java
          http://jenkins-ci.org/commit/remoting/4b291b3ab370e1ddee8b656c96cef636a86c6573
          Log:
          JENKINS-36871 WIndows!?!

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/org/jenkinsci/remoting/protocol/IOHub.java http://jenkins-ci.org/commit/remoting/4b291b3ab370e1ddee8b656c96cef636a86c6573 Log: JENKINS-36871 WIndows!?!

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java
          http://jenkins-ci.org/commit/remoting/6cd91459c8b0e263e907ccdad271ba327e020d93
          Log:
          JENKINS-36871 Improve single-byte `get()` performance

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/org/jenkinsci/remoting/util/ByteBufferQueue.java http://jenkins-ci.org/commit/remoting/6cd91459c8b0e263e907ccdad271ba327e020d93 Log: JENKINS-36871 Improve single-byte `get()` performance

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/org/jenkinsci/remoting/util/ByteBufferQueueInputStream.java
          http://jenkins-ci.org/commit/remoting/74bf4fa676837b682ced32ad684474001e525665
          Log:
          JENKINS-36871 Optimize single byte `read()` performance

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/org/jenkinsci/remoting/util/ByteBufferQueueInputStream.java http://jenkins-ci.org/commit/remoting/74bf4fa676837b682ced32ad684474001e525665 Log: JENKINS-36871 Optimize single byte `read()` performance

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/org/jenkinsci/remoting/util/FastByteBufferQueueInputStream.java
          src/test/java/org/jenkinsci/remoting/util/FastByteBufferQueueInputStreamTest.java
          http://jenkins-ci.org/commit/remoting/8e595fcd116d0df7f712a1ac41d7188a1b943b6f
          Log:
          JENKINS-36871 Stripped back higher performance ByteBufferQueue InputStream implementation

          • Drops support for mark and unbounded read in return for faster performance

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/org/jenkinsci/remoting/util/FastByteBufferQueueInputStream.java src/test/java/org/jenkinsci/remoting/util/FastByteBufferQueueInputStreamTest.java http://jenkins-ci.org/commit/remoting/8e595fcd116d0df7f712a1ac41d7188a1b943b6f Log: JENKINS-36871 Stripped back higher performance ByteBufferQueue InputStream implementation Drops support for mark and unbounded read in return for faster performance

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/hudson/remoting/AbstractByteBufferCommandTransport.java
          http://jenkins-ci.org/commit/remoting/3c0db40c31165dea74cac5791adae4e99c179bad
          Log:
          JENKINS-36871 Switch to FastByteBufferQueueInputStream

          • We don't need the general purpose mark support or unbounded reads, so lets get more performance

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/hudson/remoting/AbstractByteBufferCommandTransport.java http://jenkins-ci.org/commit/remoting/3c0db40c31165dea74cac5791adae4e99c179bad Log: JENKINS-36871 Switch to FastByteBufferQueueInputStream We don't need the general purpose mark support or unbounded reads, so lets get more performance

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/org/jenkinsci/remoting/protocol/ProtocolStack.java
          http://jenkins-ci.org/commit/remoting/b5656c06abb78a2c384fbcee631107a3b476f164
          Log:
          JENKINS-36871 Halve the number of stack walks when checking if open

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/org/jenkinsci/remoting/protocol/ProtocolStack.java http://jenkins-ci.org/commit/remoting/b5656c06abb78a2c384fbcee631107a3b476f164 Log: JENKINS-36871 Halve the number of stack walks when checking if open

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol1Handler.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol2Handler.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol3Handler.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol4Handler.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol4PlainHandler.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocolHandler.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocolHandlerFactory.java
          src/main/java/org/jenkinsci/remoting/engine/LegacyJnlpProtocolHandler.java
          src/test/java/org/jenkinsci/remoting/engine/JnlpProtocolHandlerTest.java
          http://jenkins-ci.org/commit/remoting/1edda2be2a24732a2ff184207d859468d69b4877
          Log:
          JENKINS-36871 Blocking I/O is faster when you have very few connections, so allow preference declaration

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol1Handler.java src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol2Handler.java src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol3Handler.java src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol4Handler.java src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol4PlainHandler.java src/main/java/org/jenkinsci/remoting/engine/JnlpProtocolHandler.java src/main/java/org/jenkinsci/remoting/engine/JnlpProtocolHandlerFactory.java src/main/java/org/jenkinsci/remoting/engine/LegacyJnlpProtocolHandler.java src/test/java/org/jenkinsci/remoting/engine/JnlpProtocolHandlerTest.java http://jenkins-ci.org/commit/remoting/1edda2be2a24732a2ff184207d859468d69b4877 Log: JENKINS-36871 Blocking I/O is faster when you have very few connections, so allow preference declaration

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          LICENSE.md
          NOTICE
          http://jenkins-ci.org/commit/remoting/c8be8453dbee9cb3c7156307fa64b5c6a0618149
          Log:
          JENKINS-36871 The code was missing a NOTICE and LICENSE files

          • You'll see why I spotted this next

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: LICENSE.md NOTICE http://jenkins-ci.org/commit/remoting/c8be8453dbee9cb3c7156307fa64b5c6a0618149 Log: JENKINS-36871 The code was missing a NOTICE and LICENSE files You'll see why I spotted this next

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          pom.xml
          src/assembly/agent-load-test.xml
          src/assembly/agent-load-test/LICENSE.md
          src/assembly/agent-load-test/NOTICE
          src/assembly/agent-load-test/README.md
          src/assembly/agent-load-test/agent-load-test
          src/assembly/agent-load-test/agent-load-test.bat
          src/test/java/org/jenkinsci/remoting/engine/HandlerLoopbackLoadStress.java
          http://jenkins-ci.org/commit/remoting/19093e34f77f6beb0af6d767addb75bee09ef0e6
          Log:
          JENKINS-36871 Add a load testing client

          • This needs its own LICENSE and NOTICE files as it includes things like JUnit

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: pom.xml src/assembly/agent-load-test.xml src/assembly/agent-load-test/LICENSE.md src/assembly/agent-load-test/NOTICE src/assembly/agent-load-test/README.md src/assembly/agent-load-test/agent-load-test src/assembly/agent-load-test/agent-load-test.bat src/test/java/org/jenkinsci/remoting/engine/HandlerLoopbackLoadStress.java http://jenkins-ci.org/commit/remoting/19093e34f77f6beb0af6d767addb75bee09ef0e6 Log: JENKINS-36871 Add a load testing client This needs its own LICENSE and NOTICE files as it includes things like JUnit

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/hudson/remoting/Engine.java
          http://jenkins-ci.org/commit/remoting/41841e520b6cfec0bb1179cf33ef969aec230886
          Log:
          JENKINS-36871 Use Blocking-I/O for the clients

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/hudson/remoting/Engine.java http://jenkins-ci.org/commit/remoting/41841e520b6cfec0bb1179cf33ef969aec230886 Log: JENKINS-36871 Use Blocking-I/O for the clients

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/test/java/org/jenkinsci/remoting/engine/JnlpProtocolHandlerTest.java
          http://jenkins-ci.org/commit/remoting/0529c154be04e030855a801e65cd0d096ae8130f
          Log:
          JENKINS-36871 Test timing is needs longer when dealing with slower build agents

          Compare: https://github.com/jenkinsci/remoting/compare/19093e34f77f...0529c154be04

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/test/java/org/jenkinsci/remoting/engine/JnlpProtocolHandlerTest.java http://jenkins-ci.org/commit/remoting/0529c154be04e030855a801e65cd0d096ae8130f Log: JENKINS-36871 Test timing is needs longer when dealing with slower build agents Compare: https://github.com/jenkinsci/remoting/compare/19093e34f77f...0529c154be04

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol4Handler.java
          src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol4PlainHandler.java
          http://jenkins-ci.org/commit/remoting/2ce2f8ac22816813b413f09b37d2c05151eb1b3a
          Log:
          JENKINS-36871 Fix failing tests

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol4Handler.java src/main/java/org/jenkinsci/remoting/engine/JnlpProtocol4PlainHandler.java http://jenkins-ci.org/commit/remoting/2ce2f8ac22816813b413f09b37d2c05151eb1b3a Log: JENKINS-36871 Fix failing tests

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          src/test/java/org/jenkinsci/remoting/engine/JnlpProtocolHandlerTest.java
          http://jenkins-ci.org/commit/remoting/ac9bcabdb7a69e0cf8e49ca92ce9cad8fd9b6842
          Log:
          JENKINS-36871 Forgot to test JNLP4-plaintext

          Compare: https://github.com/jenkinsci/remoting/compare/0529c154be04...ac9bcabdb7a6

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/test/java/org/jenkinsci/remoting/engine/JnlpProtocolHandlerTest.java http://jenkins-ci.org/commit/remoting/ac9bcabdb7a69e0cf8e49ca92ce9cad8fd9b6842 Log: JENKINS-36871 Forgot to test JNLP4-plaintext Compare: https://github.com/jenkinsci/remoting/compare/0529c154be04...ac9bcabdb7a6

          Matthew Barr added a comment -

          Is there any way to tell when this might be released? We're very interested in this work.

          It sounds like this needs a remoting release, which will later make it's way to a jenkins release.

          (We might also be willing to test a nightly, but I'm going to have to figure out a bit more of the process first.)

          Matthew Barr added a comment - Is there any way to tell when this might be released? We're very interested in this work. It sounds like this needs a remoting release, which will later make it's way to a jenkins release. (We might also be willing to test a nightly, but I'm going to have to figure out a bit more of the process first.)

          Antonio Beyah added a comment -

          +1, also interested in this. Any update on when this is expected to be released?

          Antonio Beyah added a comment - +1, also interested in this. Any update on when this is expected to be released?

          Oleg Nenashev added a comment -

          Marking it as Resolved. We're preparing to the Remoting 3.0 release right now

          Oleg Nenashev added a comment - Marking it as Resolved. We're preparing to the Remoting 3.0 release right now

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          core/src/main/java/jenkins/slaves/DefaultJnlpSlaveReceiver.java
          core/src/main/java/jenkins/slaves/IOHubProvider.java
          core/src/main/java/jenkins/slaves/JnlpAgentReceiver.java
          core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol.java
          core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol2.java
          core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol3.java
          core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol4.java
          core/src/main/java/jenkins/slaves/JnlpSlaveHandshake.java
          core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description.jelly
          core/src/main/resources/jenkins/slaves/Messages.properties
          core/src/test/java/jenkins/slaves/DefaultJnlpSlaveReceiverTest.java
          pom.xml
          http://jenkins-ci.org/commit/jenkins/71cbe0cc7c601c04509faa618b23194335288fee
          Log:
          [JENKINS-36871, JENKINS-37565] JNLP4-connect implementation and Remoting 3 (#2492)

          • JENKINS-36871 Switch to the new JnlpProtocolHandler based implementation

          Todo

          • [ ] Restore the cookie behaviour (but done right this time)
          • [ ] Perhaps investigate issuing clients with TLS certificates (but would require a UI for managing them)
          • JENKINS-36871 Oleg wants to log an exception that cannot happen

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: core/src/main/java/jenkins/slaves/DefaultJnlpSlaveReceiver.java core/src/main/java/jenkins/slaves/IOHubProvider.java core/src/main/java/jenkins/slaves/JnlpAgentReceiver.java core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol.java core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol2.java core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol3.java core/src/main/java/jenkins/slaves/JnlpSlaveAgentProtocol4.java core/src/main/java/jenkins/slaves/JnlpSlaveHandshake.java core/src/main/resources/jenkins/slaves/JnlpSlaveAgentProtocol4/description.jelly core/src/main/resources/jenkins/slaves/Messages.properties core/src/test/java/jenkins/slaves/DefaultJnlpSlaveReceiverTest.java pom.xml http://jenkins-ci.org/commit/jenkins/71cbe0cc7c601c04509faa618b23194335288fee Log: [JENKINS-36871, JENKINS-37565] JNLP4-connect implementation and Remoting 3 (#2492) JENKINS-36871 Switch to the new JnlpProtocolHandler based implementation Todo [ ] Restore the cookie behaviour (but done right this time) [ ] Perhaps investigate issuing clients with TLS certificates (but would require a UI for managing them) JENKINS-36871 License headers and javadocs JENKINS-36871 Restore cookie handling JENKINS-36871 Integrating Agent discovery components JENKINS-36871 Pick up remoting 3.0-SNAPSHOT JENKINS-36871 Pick up newer snapshot JENKINS-36871 Oleg wants to log an exception that cannot happen

          Oleg Nenashev added a comment -

          The fix is integrated towards 2.27

          Oleg Nenashev added a comment - The fix is integrated towards 2.27

          Sam Gleske added a comment - - edited

          How does one confirm that JNLP4 is being used? I tried the latest Jenkins ver. 2.38 (weekly) and configured a JNLP slave (there's no option to configure what kind of JNLP slave).

          Additionally, the agent logs don't show much in the way of output confirming which JNLP protocol is even being used. Here's the full log output from the initialization of the JNLP slave.

          JNLP agent connected from /REDACTED
          <===[JENKINS REMOTING CAPACITY]===>Slave.jar version: 3.3
          This is a Unix agent
          Agent successfully connected and online
          

          So far, I'm not sure how to tell what protocol is being used.

          Sam Gleske added a comment - - edited How does one confirm that JNLP4 is being used? I tried the latest Jenkins ver. 2.38 (weekly) and configured a JNLP slave (there's no option to configure what kind of JNLP slave). Additionally, the agent logs don't show much in the way of output confirming which JNLP protocol is even being used. Here's the full log output from the initialization of the JNLP slave. JNLP agent connected from /REDACTED <===[JENKINS REMOTING CAPACITY]===>Slave.jar version: 3.3 This is a Unix agent Agent successfully connected and online So far, I'm not sure how to tell what protocol is being used.

          Sam Gleske added a comment -

          Nevermind, I found it in Manage Jenkins > Configure Global Security > JNLP. In the Advanced section, you have to enable JNLP4 (and can optionally disable the other protocols). Then if you look at the agent log you can see the JNLP4 class being used in the thread dump output. It would be nice if the agent Log output displayed which protocol it is using in the agent startup information.

          Sam Gleske added a comment - Nevermind, I found it in Manage Jenkins > Configure Global Security > JNLP . In the Advanced section, you have to enable JNLP4 (and can optionally disable the other protocols). Then if you look at the agent log you can see the JNLP4 class being used in the thread dump output. It would be nice if the agent Log output displayed which protocol it is using in the agent startup information.

          Sam Gleske added a comment -

          It would be nice if the agent Log output displayed which protocol it is using in the agent startup information.

          I created JENKINS-40700 as an enhancement.

          Sam Gleske added a comment - It would be nice if the agent Log output displayed which protocol it is using in the agent startup information. I created JENKINS-40700 as an enhancement.

            stephenconnolly Stephen Connolly
            stephenconnolly Stephen Connolly
            Votes:
            2 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated:
              Resolved: