Hi all,

In Jenkins 2.98 before the new year I have integrated Remoting 3.15 into 
the weekly. In this release I introduced some new convenience API methods 
for hudson.remoting.Callables, and in PR #3145 
<https://github.com/jenkinsci/jenkins/pull/3145> I adopted this APIs in 
MasterToSlaveCallable implementations. No wonder instances with older 
Remoting versions on agents fell apart... It caused JENKINS-48761 
<https://issues.jenkins-ci.org/browse/JENKINS-48761> and most likely 
JENKINS-48754 <https://issues.jenkins-ci.org/browse/JENKINS-48754>.

SSHLauncher-only instances were fine + there is a workaround (update 
Remoting on agents to version 3.15). Docker agent images and Swarm Plugin 
Client with Remoting 3.15 have been also released along with Jenkins 
2.98... But the community ratings are pretty bad (33 positives, 15 
negatives), so after the discussion we decided to go forward with the 
out-of-order release. https://github.com/jenkinsci/jenkins/pull/3212 with a 
hotfix has been integrated, I hope to get it released soon.

What I did:

   - Fixed breaking API usages non-compatible with old Remoting versions
   - Created tests for old agent connection possibility within the Jenkins 
   core test suite. Now we have smoke tests, which at least confirms that the 
   agent is able to connect, execute jobs and pass node monitors
   - Currently the tests run against Remoting 2.62, which is 1.5 years old
   
Next action items:

   - Extend Remoting integration testing in the core
      - For now - just extra tests to improve coverage of 
      MasterToSlaveCallables and other Remoting-related logic
      - In longer term I would like to have a "Remoting Compatibility 
      Tester" test suite
      - JENKINS-48766 <https://issues.jenkins-ci.org/browse/JENKINS-48766> 
   - Introduce the "Minimum Supported Remoting Version" in the core and in 
   Remoting
      - Current state: Any Remoting version can *theoretically* connect if 
      one of its protocols is accepted by master. Nobody knows when it will 
fail 
      due to API compatibility in master-to-agent calls
      - With the proposed change Jenkins admins will start getting warnings 
      about unsupported Remoting versions, so that they will be able to 
      proactively investigate the issues. 
      - The change will help us to setup more testing and maybe advanced 
      static analysis for API compatibility
   - Revisit Remoting Upgradeability stories (JENKINS-44099 
   <https://issues.jenkins-ci.org/browse/JENKINS-44099>), which could have 
   prevented the issue by keeping agents up to date
   
My apologies for any inconvenience I caused. As always, I highly recommend 
using LTS on production instances to avoid the boilerplate risks in weekly 
releases. If you have any feedback/questions, please do not hesitate to 
respond to this thread or to send me a private message.

Best regards, 
Oleg




-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/5caad75d-6bf0-45dc-8a5f-eb2aad148995%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to