Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Using TCK Tested JDK builds of OpenJDK #11467

Closed
carldea opened this issue Oct 13, 2021 · 6 comments
Closed

Using TCK Tested JDK builds of OpenJDK #11467

carldea opened this issue Oct 13, 2021 · 6 comments
Assignees

Comments

@carldea
Copy link
Contributor

carldea commented Oct 13, 2021

GitHub Action setup-java@v2 requires a distribution templeted with adopt. The AdoptOpenJDK has been discontinued since July 2021 (https://adoptopenjdk.net). Switching the distribution to Azul Zulu (zulu). When using Zulu you get all the latest updated (TCK Tested) builds for all versions of OpenJDK. AdoptOpenJDK builds are not TCK tested.

Expected Behavior

When building and testing the project you are expected to get the latest JDK (security patches, bug fixes, etc.). Or a major fixed version from an archived release. This is good practice if there are major vendors and customers who are still using older versions of the JDK.

Current Behavior

  • Not getting the latest JDK release
  • Not building and testing on TCK tested JDK
  • Only testing and building on the latest JDK

Possible Solution

Update github actions to use zulu as a distro will solve the following:

  • Gets the latest builds of OpenJDK
  • Azul Zulu builds are TCK tested (ready for production)
  • Provide a matrix to test/build a fixed(major) version and the latest.

The following snippet will be added to the GitHub workflow:

jobs:
  build:
    runs-on: ubuntu-latest 
    strategy:
      matrix:
        java-version: [ 8.0.192, 8 ]
    steps:
      - uses: actions/checkout@v2
      - name: Set up JDK ${{ matrix.java-version }}
        uses: actions/setup-java@v2
        with:
          java-version: ${{ matrix.java-version }}
          distribution: zulu

Context

Full disclosure, I work for Azul and I would like to help repos/projects avoid test/build interuptions because of OpenJDK distribution build versions provided from GH setup-java@v2 are not consistent (except zulu). Originally GH action setup-java@v1 was using zulu and the newer version (GHAction) allows you to choose adopt, zulu, and temurin. Because adopt has been discontinued (AdoptOpenJDK binaries) you only have two choices currently.

Your Environment

N/A

@supahgreg
Copy link
Contributor

supahgreg commented Oct 13, 2021

I don't have a preference either way (and have used all options mentioned at various points), but AdoptOpenJDK's direct replacement would seem to be their new Eclipse Temurin distributions (temurin), made available via the Adoptium site, which is JCK/TCK certified (a benefit of moving under Eclipse).

edit: I just noticed the PR has a bit more context on why Zulu might be preferable over Temurin for this use case.

@bernd
Copy link
Member

bernd commented Oct 14, 2021

@carldea @supahgreg Thanks for bringing this up!

As mentioned in the PR, we want to switch to temurin for now because it's the successor of adopt.

@carldea
Copy link
Contributor Author

carldea commented Oct 14, 2021

Not a problem. I will need to remove Java 8.0.192, As Temurin doesn't support that version.

@carldea
Copy link
Contributor Author

carldea commented Oct 14, 2021

Updated the workflow so you should be ready to go!

@bernd bernd self-assigned this Oct 18, 2021
@bernd bernd added the triaged label Oct 18, 2021
@bernd bernd closed this as completed in 315f0bb Oct 19, 2021
@bernd
Copy link
Member

bernd commented Oct 19, 2021

@carldea Thank you! 🙏 I just merged the PR.

@carldea
Copy link
Contributor Author

carldea commented Oct 19, 2021

@carldea Thank you! 🙏 I just merged the PR.

You are welcome! Glad to have helped contribute. 👍🏼

AntonEbel pushed a commit that referenced this issue Oct 28, 2021
thll added a commit that referenced this issue Nov 15, 2021
* locked jobs are now executed if the node no longer exists and a time threshold is exceeded

* externalize config

* add heartbeat for locked job triggers

* add license headers

* use job_scheduler prefix for config parameter

Co-authored-by: Bernd Ahlers <bernd@users.noreply.github.com>

* change schedule job heartbeat period

* fix flaky test

* Switch to Temurin/Adoptium builds of OpenJDK for GitHub action (#11468)

The AdoptOpenJDK has been discontinued since July 2021 (https://adoptopenjdk.net).

Fixes #11467

* Organize components between /common and /bootstrap (#11326)

* Update package

* Modify config to have theme utils and colors at top.
Ignore components that error on build.
Include babel polyfill in require array

* Update content, clean some errors, fix Color click to copy success alert

* Colors.jsx linting

* Moving Scratchpad out of common components

* organize components between common and bootstrap

* fix cyclic use errors

* final imports

* fix up

* Updating docs imports

* fix lingering errors

* remove unneeded file

* cleaning imports

* snapshots

* fix PublicNotifications test

* DataAdapterCreate fix

* RulesPage.tsx

* this was deleted (??)

* Remove injection/builtins.js from styleguide.config.js (#11492)

* check plugin file extension (#11163)

* check plugin file extension

* add capitalized plugin file extension

Co-authored-by: Marco Pfatschbacher <marco@graylog.com>

Co-authored-by: Marco Pfatschbacher <marco@graylog.com>

* Fix swagger api annotation for Field Types

* Bump gRPC version to 1.41.0 (#11486)

* Ability to skip index template creation upon index rotation (#11466)

For certain scenarios we should provide an ability to skip index
template creation when rotating index set. It must be helpful for the
following use cases:

* Index templates are managed externally
* At the moment of the index rotation, the index template cannot be
resolved and it's acceptable to fall back to using an already existing
index template

Detailed motivation: Graylog2/graylog-plugin-enterprise#2757 (comment)

P.S. The PR also contains a minor clean-up of the Indices interface

* cluster id and license parameter (#11434)

* Ensure consistent apache httpclient/core versions (#11509)

* Ensure consistent apache httpclient/core versions

- Update to the latest httpclient, httpcore and httpasyncclient versions
- Add dependencies to dependency management
- Add direct dependencies to server to ensure consistent versions across
  all plugins

* Move apache httpclient/core to graylog-parent dependency management

That way it will be available for the server and all plugins.

* Redirect to rules list pages when getting a rule return 404 (#11455)

* Make logged in indicator consistent with elements on User Details page (#11481)

* Validate Pipeline stage numbers (#11496)

* Add constrains to Pipeline stage numbers

Pipeline stages must be values between `Integer.MIN_VALUE + 1` and
`Integer.MAX_VALUE`. This change adds `min` and `max` values to the
input, ensuring users are aware of those constrains while filling in
the form.

Fixes #7591

* Fix linter error

* Running lint --fix (#11444)

Co-authored-by: Dr. Lint-a-lot <garybot2@graylog.com>

* Removing orphaned `jquery-ui` dependency. (#11537)

* change lock expiration parameter from integer to duration

* execute job heartbeat in own executor which is shutdown properly

* don't consider active nodes because of job heartbeat

* shutdown heartbeat only if job worker pool terminated successfully

Co-authored-by: Bernd Ahlers <bernd@users.noreply.github.com>
Co-authored-by: Carl Dea <carl.dea@gmail.com>
Co-authored-by: Kyle Knight <122591+kyleknighted@users.noreply.github.com>
Co-authored-by: Marco Pfatschbacher <marco@graylog.com>
Co-authored-by: Tomas Dvorak <tomas.dvorak@graylog.com>
Co-authored-by: Othello Maurer <othello@graylog.com>
Co-authored-by: Danylo Iesaulov <26978790+diesaulov@users.noreply.github.com>
Co-authored-by: Ousmane SAMBA <ousmane@graylog.com>
Co-authored-by: Greg <supahgreg@users.noreply.github.com>
Co-authored-by: Edmundo Alvarez <edmundo@graylog.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Dr. Lint-a-lot <garybot2@graylog.com>
Co-authored-by: Dennis Oelkers <dennis@graylog.com>
mpfz0r pushed a commit to Graylog2/graylog-docker that referenced this issue Jul 26, 2022
* Switch from 'openjdk' to 'eclipse-temurin' for base images.

The 'openjdk' images are being retired/discontinued.  Since Eclipse Temurin was previously
selected for other Graylog uses, it is a natural replacement for the official Graylog images.

Ubuntu Jammy, selected as the OS variant here (and by the Temurin project for non-specific tags),
will have standard support until April 2027.

Refs:
* docker-library/openjdk#505
* Graylog2/graylog2-server#11467
* https://github.com/Graylog2/graylog2-server/blob/bf001c5a039380e0afadc9f570d070d2b70ee578/.github/workflows/build.yml#L18

* Fix loading of SO for non-root users.

This is something that was being done in the 'openjdk' images, but isn't (currently) with Temurin.  Without this the following error will occur: 'java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory'.

Refs:
* https://github.com/docker-library/openjdk/blob/da594d91b0364d5f1a32e0ce6b4d3fd8a9116844/8/jdk/slim-bullseye/Dockerfile#L105
* docker-library/openjdk#331 (comment)

* Mention that prior Graylog images were based on 'openjdk' images.

* July Graylog images have already been released, so assume August.
mpfz0r pushed a commit that referenced this issue Jul 29, 2022
…age.

The 'openjdk' images are being retired/discontinued.  Since Eclipse Temurin was previously
selected for other Graylog uses, it is a natural replacement for the official Graylog images.

Ubuntu Jammy, selected as the OS variant here (and by the Temurin project for non-specific tags),
will have standard support until April 2027.

This also includes a fix for non-root SO loading that was being done in the 'openjdk' images, but isn't
(currently) with Temurin.  Without it the following error will occur:
'java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory'.

Refs:
* docker-library/openjdk#505
* #11467
* https://github.com/Graylog2/graylog2-server/blob/bf001c5a039380e0afadc9f570d070d2b70ee578/.github/workflows/build.yml#L18
* https://github.com/docker-library/openjdk/blob/da594d91b0364d5f1a32e0ce6b4d3fd8a9116844/8/jdk/slim-bullseye/Dockerfile#L105
* docker-library/openjdk#331 (comment)
mpfz0r pushed a commit that referenced this issue Jul 29, 2022
…age. (#13002)

The 'openjdk' images are being retired/discontinued.  Since Eclipse Temurin was previously
selected for other Graylog uses, it is a natural replacement for the official Graylog images.

Ubuntu Jammy, selected as the OS variant here (and by the Temurin project for non-specific tags),
will have standard support until April 2027.

This also includes a fix for non-root SO loading that was being done in the 'openjdk' images, but isn't
(currently) with Temurin.  Without it the following error will occur:
'java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory'.

Refs:
* docker-library/openjdk#505
* #11467
* https://github.com/Graylog2/graylog2-server/blob/bf001c5a039380e0afadc9f570d070d2b70ee578/.github/workflows/build.yml#L18
* https://github.com/docker-library/openjdk/blob/da594d91b0364d5f1a32e0ce6b4d3fd8a9116844/8/jdk/slim-bullseye/Dockerfile#L105
* docker-library/openjdk#331 (comment)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants