Updating to remoting 3 in the core

119 views
Skip to first unread message

Oleg Nenashev

unread,
Oct 13, 2016, 2:25:01 AM10/13/16
to Jenkins Developers
Hello,

For your information, we are going to release a new major version of remoting (remoting 3). This version provides a new JNLP4 protocol, which adds support of Java NIO and improves stability being compared to the JNLP3 protocol.

Due to the change implementation, it requires some formally incompatible changes in the remoting lib and the core. The change required deletion of the JnlpServerHandshake class and rework of its implementation (PR to the core). De-facto we were unable to find any usages of such API.

Another important change is the explicit Java 7 requirement. We do not support Java 6 on slaves/agents starting from the 1.610 release (Announcement), but de-facto remoting users were still able to use this Java version and latest remoting versions in particular edge cases.

Today at the Jenkins governance meeting we decided that these formally incompatible changes are not blockers for including it into Jenkins 2.x.

As a remoting maintainer, I would like to include JNLP4 into Jenkins core as soon as possible since remoting 3 has some known stability issues. Inclusion into Weeklys allows to get better soak testing before the change actually gets into the next LTS baselines. Newest Jenkins core versions include UI for managing the new protocol, hence users will be able to opt-in and opt-out. Jenkins agents with remoting 2.x will be able to connect to Jenkins master with remoting 3.x, hence the update should be smooth.

Please respond if you have any concerns regarding the approach.

Best regards,
Oleg Nenashev

Stephen Connolly

unread,
Oct 13, 2016, 3:11:43 AM10/13/16
to jenkin...@googlegroups.com
+1
--
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 jenkinsci-dev+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/a8f1c019-63c0-4cfd-b443-33a3fe476b96%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


--
Sent from my phone

Oleg Nenashev

unread,
Oct 13, 2016, 3:12:21 AM10/13/16
to Jenkins Developers
UPD: /s/since remoting 3 has some known stability issues/since JNLP3 has some known stability issues/

Remoting 3 seems to be pretty stable according to multiple tests performed by Stephen Connolly, James Nord and me.

среда, 12 октября 2016 г., 23:25:01 UTC-7 пользователь Oleg Nenashev написал:

Arnaud Héritier

unread,
Oct 13, 2016, 4:52:55 AM10/13/16
to jenkin...@googlegroups.com
+1

--
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 jenkinsci-dev+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/a8f1c019-63c0-4cfd-b443-33a3fe476b96%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
-----
Arnaud Héritier
Mail/GTalk: aheritier AT gmail DOT com
Twitter/Skype : aheritier

Oleg Nenashev

unread,
Oct 18, 2016, 5:37:51 PM10/18/16
to Jenkins Developers
We are ready to merge https://github.com/jenkinsci/jenkins/pull/2492.
Is somebody has any concerns, please shout ASAP

четверг, 13 октября 2016 г., 10:52:55 UTC+2 пользователь Arnaud Héritier написал:
+1

On Thu, Oct 13, 2016 at 8:25 AM, Oleg Nenashev <o.v.ne...@gmail.com> wrote:
Hello,

For your information, we are going to release a new major version of remoting (remoting 3). This version provides a new JNLP4 protocol, which adds support of Java NIO and improves stability being compared to the JNLP3 protocol.

Due to the change implementation, it requires some formally incompatible changes in the remoting lib and the core. The change required deletion of the JnlpServerHandshake class and rework of its implementation (PR to the core). De-facto we were unable to find any usages of such API.

Another important change is the explicit Java 7 requirement. We do not support Java 6 on slaves/agents starting from the 1.610 release (Announcement), but de-facto remoting users were still able to use this Java version and latest remoting versions in particular edge cases.

Today at the Jenkins governance meeting we decided that these formally incompatible changes are not blockers for including it into Jenkins 2.x.

As a remoting maintainer, I would like to include JNLP4 into Jenkins core as soon as possible since remoting 3 has some known stability issues. Inclusion into Weeklys allows to get better soak testing before the change actually gets into the next LTS baselines. Newest Jenkins core versions include UI for managing the new protocol, hence users will be able to opt-in and opt-out. Jenkins agents with remoting 2.x will be able to connect to Jenkins master with remoting 3.x, hence the update should be smooth.

Please respond if you have any concerns regarding the approach.

Best regards,
Oleg Nenashev

--
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 jenkinsci-de...@googlegroups.com.

Jimilian

unread,
Oct 20, 2016, 4:19:47 AM10/20/16
to Jenkins Developers
Hi, Oleg!

How to change protocol version? Do you know any documentation related to this?

Br, Alex

Stephen Connolly

unread,
Oct 20, 2016, 5:17:49 AM10/20/16
to jenkin...@googlegroups.com
First go to configure global security:

Inline images 1

Then click the "Agent protocols..." button

Inline images 2
Then enable / disable the protocols you want.

If an agent cannot discover a common set of protocols it will abort trying to connect. If it can establish a common set of protocols, it will try them in sequence, highest version first.

HTH

--
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 jenkinsci-dev+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/55db6fb0-f63f-4380-9814-8fbe8220e05e%40googlegroups.com.

Jimilian

unread,
Oct 20, 2016, 5:51:41 AM10/20/16
to Jenkins Developers
Thanks a lot for fast answer!

Can you explain one more thing. What should I do (which code to execute/method to use/JVM parameter to provide/jar to download) to make sure that agent supports last protocol?
( I want to implement some kind of checks for this in our custom version of EC2 plugin )

Br, Alex
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com.

Oleg Nenashev

unread,
Oct 20, 2016, 5:55:43 AM10/20/16
to JenkinsCI Developers
> Can you explain one more thing. What should I do (which code to execute/method to use/JVM parameter to provide/jar to download) to make sure that agent supports last protocol?

The most straightforward way is to use https://wiki.jenkins-ci.org/display/JENKINS/VersionColumn+Plugin . But it's an overkill maybe.

But you can invoke logic from this plugin in order to retrieve remoting versions in your plugins.



--
You received this message because you are subscribed to a topic in the Google Groups "Jenkins Developers" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/jenkinsci-dev/SS6z-09dHIs/unsubscribe.
To unsubscribe from this group and all its topics, send an email to jenkinsci-dev+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/1d162875-02ab-4f59-996e-e6abd21d8684%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages