XMLWordPrintable

Details

    • Improvement
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • remoting
    • None

    Description

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

      Attachments

        Issue Links

          Activity

            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_issue_link 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 Oleg Nenashev added a comment -

            The fix is integrated towards 2.27

            oleg_nenashev Oleg Nenashev added a comment - The fix is integrated towards 2.27
            sag47 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.

            sag47 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.
            sag47 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.

            sag47 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.
            sag47 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.

            sag47 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.

            People

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

              Dates

                Created:
                Updated:
                Resolved: