Java LTS Support in GoCD

23 views
Skip to first unread message

Jason Smyth

unread,
Jun 2, 2021, 10:09:22 AM6/2/21
to go-cd
Hi all,

Based on what I read in this recent thread, it seems GoCD only supports Java v >= (latest-2), regardless of Long-Term Support status of any releases.

This would seem to indicate that even though Java 11 is the most recent LTS version and the next LTS version will not be until Java 17, GoCD has already dropped support for Java 11 because Java 14 (not LTS) and 15 (not LTS) have already been released, so (latest-2) is now 13.

This will effectively force all GoCD users to either go long periods of time without updating GoCD (i.e. do not run any versions of GoCD that support neither v11 nor v17) or switch to non-LTS versions of Java. Since non-LTS versions of Java are only supported for 6 months until the next version is released, this then forces all GoCD users to major Java version updates every 6 months if they want to run only supported versions.

Am I missing something here? Why does GoCD not support the latest LTS version of Java? Why support Java 13 (support ended more than a year ago in March 2020) but not 11 (supported until at least 2024)? Is it just too much work to test such an "old" version?

Sorry if this is not the right place to raise this but it didn't seem appropriate to raise a GitHub Issue at this point. I would love to hear other people's thoughts on this.

Regards,
Jason Smyth

Ashwanth Kumar

unread,
Jun 2, 2021, 10:28:08 AM6/2/21
to go...@googlegroups.com
Taking the notes from GoCD stance (https://www.gocd.org/2019/05/21/official-stance-on-java/) and looking at IntelliJ blog post (https://blog.jetbrains.com/idea/2018/09/using-java-11-in-production-important-things-to-know/), and OpenJDK releases page (https://jdk.java.net/archive/) and assuming my understanding is correct, 

It seems like you get LTS support only for paid version of Oracle JDK not for the OpenJDK variants. 

--
You received this message because you are subscribed to the Google Groups "go-cd" group.
To unsubscribe from this group and stop receiving emails from it, send an email to go-cd+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/go-cd/f64f8a9e-587a-498b-9c90-3af4ae23dc46n%40googlegroups.com.

Ketan Padegaonkar

unread,
Jun 2, 2021, 10:36:39 AM6/2/21
to go...@googlegroups.com
You are right in that we support the last couple of releases of java, this means that LTS versions may not actually be supported.

The primary drive for this is the amount of testing required for each version of java that we supported, and some licensing issues around java 11 when oracle changed the licensing and support around it. At the time we made this decison, there was quite an uncertainty about openjdk and support for java in the long term. Since then, several distributions have come up and provide java 11 (redhat, aws, adoptopenjdk). For context: each version of java we support, requires to be tested on a couple of versions of linux and windows. Having the agent and server on different JRE versions increases this effort significantly with each new version of JRE that we decide to support.

We've therefore also taken the decision to package a compatible JRE with GoCD installations. This means that GoCD users can continue to upgrade their gocd servers, and not have to worry about JRE versions and configuring GoCD to use the right JRE. This had the unfortunate side-effect that if you ended up using a very old agent bootstrapper, that eventually became a bottleneck. But the n-2 JRE version compatibility gives teams ample time to upgrade their GoCD agent (about 18 months with a 6 month release cadence), if I'm not wrong.

There is obviously the zip distribution, for the "power users" who know what they're doing, and like to be on the bleeding edge. For the vast majority of users, we expect that they use the usual distributions (rpm/deb or docker images based on their favorite distribution).

- Ketan

Ashwanth Kumar

unread,
Jun 2, 2021, 10:37:10 AM6/2/21
to go...@googlegroups.com
I found another post on the OpenJDK mailing list to explain more clearly. 


This further confirms that vendors who have forked OpenJDK might support it but not OpenJDK itself. 

Aravind SV

unread,
Jun 2, 2021, 10:54:31 AM6/2/21
to 'Ashwanth Kumar' via go-cd

Hello,

There’s also a similar conversation which happened over at: https://github.com/gocd/gocd/issues/8736

Is it just too much work to test such an “old” version?

I think, partially, yes.

Sorry if this is not the right place to raise this but it didn’t seem appropriate to raise a GitHub Issue at this point. I would love to hear other people’s thoughts on this.

No, this is the right place to bring it up.

Regards,
Aravind

Jason Smyth

unread,
Jun 2, 2021, 11:35:56 AM6/2/21
to go-cd
Thank you Ashwanth, Ketan and Aravind.

Your replies and the resources you linked helped make things a lot clearer for me.

It seems GoCD's stance is "We expect the majority of our users to use the bundled version of Java. Because multiple versions of Java can co-exist on a system with each application running under the desired version, this should not be an issue." I think this makes sense and is a reasonable stance to take.

I am not clear how this affects the automatic update process for Static Agents, though. Will the automatic update also update the JRE or will it only update the GoCD Agent JARs?

Thank you again,
Jason

Ketan Padegaonkar

unread,
Jun 2, 2021, 11:55:10 AM6/2/21
to go...@googlegroups.com
On Wed, Jun 2, 2021 at 9:05 PM Jason Smyth <jsm...@scimarketview.com> wrote:
I am not clear how this affects the automatic update process for Static Agents, though. Will the automatic update also update the JRE or will it only update the GoCD Agent JARs?

Agents update only updates some of the agent jars. Which is why in my earlier email, I mentioned 18 months window, where the installed agent can be 18 months older than the server version, giving 18 months for system admins to figure out how to upgrade the agents.
Reply all
Reply to author
Forward
0 new messages