GithubHelp home page GithubHelp logo

Comments (4)

arvindsv avatar arvindsv commented on July 19, 2024 1

The server and the agent can work in different java version, can't they? I mean I suppose that both are communicating on a standard communication (rest/soap).

Yes, they can be on different Java versions.

Let me explain a little bit more. The different pieces are:

  • GoCD Agent Bootstrapper is what you install. Its job is to download an appropriate agent and agent launcher using the GoCD server. You installed a 19.4 bootstrapper which comes with Java 12.

  • GoCD Agent Launcher: Downloaded by the bootstrapper, from the GoCD server. The launcher knows how to launch an agent.

  • GoCD Agent: The agent downloaded by the bootstrapper, from the GoCD server. It knows how to run jobs, etc.

  • GoCD server: You already know this. You have a 19.1 server, which supports up to Java 11.


  1. You pointed the 19.4 bootstrapper to a 19.1 server. 19.1 server has a 19.1 agent and launcher, which works only on Java 11.

  2. The 19.4 bootstrapper downloads the 19.1 agent and launcher from the server and runs them using: java -jar (using Java 12).

  3. When the agent or launcher launches, it checks which version of Java it is running with and errors out, since it is running on an unsupported version of Java.

You can see the code for 19.1 and the corresponding code for 19.4.

In that sense, this is not a Java mismatch between the agent and the server. It's just that the 19.1 agent, which is really what you're running (not 19.4), does not support Java 12.

To be very clear: If your server was running on Java 10 and your agent was running on Java 11 (or whatever is supported by them), then it'll work fine.


As an aside: Because of recent Java licensing changes, and how they're planning to keep releasing new versions of Java every 6 months, this might show up more. We wrote a blog post about how we plan to handle Java versioning.

from docs.go.cd.

arvindsv avatar arvindsv commented on July 19, 2024

@david-77 Is this the setup you have?

  • Your GoCD server is a 19.1 server.
  • Your installed GoCD agent, called bootstrapper, is a 19.4 bootstrapper.

Typically, a newer agent is not guaranteed to work. An older agent should be fine. However, in this case, it looks like this is a different problem: Since the GoCD bootstrapper is from 19.4, it is bundled with Java 12. However, since the server is a 19.1, the bootstrapper downloads a 19.1 agent from the GoCD server. That 19.1 agent works with Java 8 to Java 11.

In this case you'll either need to install a 19.1 GoCD agent or provide the GoCD agent with a Java version less than 12.

I don't think the packaging is wrong, because the 19.4 GoCD agent is supposed to be used with a 19.4 or newer GoCD server. A 19.4 GoCD server (on Windows) will be bundled with Java 12.

[Edit: The bootstrapper's job is to download an appropriate "agent" JAR from the GoCD server, corresponding to the version of the server, so that it can be compatible]

from docs.go.cd.

david-77 avatar david-77 commented on July 19, 2024

Yes Arvindsv, my setup is as you described.
The mismactch between server and agent was my first thought, but why in this case I retrieve an java version problem in agent log ?
The server and the agent can work in different java version, can't they ?
I mean I suppose that both are communicating on a standard communication (rest/soap).
But maybe I'm wrong and they are using some java dedicated protocol which could produce this king of message on the agent side.

from docs.go.cd.

david-77 avatar david-77 commented on July 19, 2024

OK thanks a lot Arvindsv for this answer, this is very complete !
The situation is clear now. For the moment, i will keep my go server version and install a previous version of the bootstrapper.
Thanks again ;)

from docs.go.cd.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.