openjdk-lts 11.0.9+ could include Shenandoah GC on amd64

Bug #1902029 reported by TGL on 2020-10-29
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
openjdk-lts (Ubuntu)
Undecided
Unassigned

Bug Description

In OpenJDK 11.0.9, the Shenandoah GC has been backported from OpenJDK 15, and is considered "Ready for Production". References:
https://wiki.openjdk.java.net/display/shenandoah/Main
https://mail.openjdk.java.net/pipermail/jdk-updates-dev/2020-October/004007.html (11.0.9 release notes)
https://bugs.openjdk.java.net/browse/JDK-8250784 (the backport issue, with pointers to review discussions)

Just like ZGC, it is an optional feature, which must be explicitly enabled at build time. Some vendors enable it already:
https://wiki.openjdk.java.net/display/shenandoah/Main#Main-Releases
For instance, Fedora enables it on x86_64 (amd64), now without any specific patch (prior to 11.0.9, they were shipping the backport patch):
https://src.fedoraproject.org/rpms/java-11-openjdk/blob/master/f/java-11-openjdk.spec

I think Ubuntu should do the same, enable it on amd64 (just like ZGC), and backport to Bionic/Focal. For some use-cases, Shenandoah has already proved it brings valuable improvements compared to G1GC, it would be nice being able to use it on Ubuntu-based containers/systems too.

I will attach an untested patch, just to show what I think is the required change to debian/rules.

============

> We also need:

> 1) The release of Ubuntu you are using, via 'lsb_release -rd' or System -> About Ubuntu

$ lsb_release -rd
Description: Ubuntu 18.04.5 LTS
Release: 18.04

> 2) The version of the package you are using, via 'apt-cache policy pkgname' or by checking in Software Center

$ apt-cache policy openjdk-11-jre-headless
openjdk-11-jre-headless:
  Installed: 11.0.9+11-0ubuntu1~18.04.1
  Candidate: 11.0.9+11-0ubuntu1~18.04.1
  Version table:
 *** 11.0.9+11-0ubuntu1~18.04.1 500
        500 http://nova.clouds.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
        100 /var/lib/dpkg/status
     10.0.1+10-3ubuntu1 500
        500 http://nova.clouds.archive.ubuntu.com/ubuntu bionic/main amd64 Packages

> 3) What you expected to happen

$ java -XX:+UseShenandoahGC -Xlog:gc -version
[0.004s][info][gc] Heuristics ergonomically sets -XX:+ExplicitGCInvokesConcurrent
[0.004s][info][gc] Heuristics ergonomically sets -XX:+ShenandoahImplicitGCInvokesConcurrent
[0.005s][info][gc] Using Shenandoah
openjdk version "11.0.9" 2020-XX-XX
...

> 4) What happened instead

$ java -XX:+UseShenandoahGC -Xlog:gc -version
Unrecognized VM option 'UseShenandoahGC'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

The attachment "openjdk-lts_11.0.9+11_enable-shenandoahgc-on-amd64.patch" seems to be a patch. If it isn't, please remove the "patch" flag from the attachment, remove the "patch" tag, and if you are a member of the ~ubuntu-reviewers, unsubscribe the team.

[This is an automated message performed by a Launchpad user owned by ~brian-murray, for any issues please contact him.]

tags: added: patch
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package openjdk-lts - 11.0.9.1+1-0ubuntu1~20.10

---------------
openjdk-lts (11.0.9.1+1-0ubuntu1~20.10) groovy-security; urgency=medium

  * Backport from Hirsute.

openjdk-lts (11.0.9.1+1-0ubuntu1) hirsute; urgency=medium

  * OpenJDK 11.0.9+11 build (release).

  [ Matthias Klose ]
  * Configure --with-jvm-features=shenandoahgc for hotspot builds.
    LP: #1902029.

  [ Tiago Stürmer Daitx ]
  * Filter out recurring failed tests.
    - debian/failed-tests-problemlist.txt: list of tests known to
      have failed in the past.
    - debian/tests/control: add zip as some tests depend on it.
    - debian/tests/hotspot, debian/tests/jaxp, debian/test/jdk,
      debian/tests/langtools: exclude tests listed as failed tests,
      exit if jtreg exits 77 as no test was actually ran.
    - debian/tests/jtreg-autopkgtest.in: reduce retries from 3 to 2,
      exit early if test results are the same on retry, output time
      along name and status.
    - debian/tests/jtreg-autopkgtest.sh: regenerated.
    - d/p/hotspot-test-fix-npe-on-missing-file.patch: recurse only
      if src file exists, fixes test when libatk is a dangling link.

openjdk-lts (11.0.9+11-0ubuntu2) hirsute; urgency=medium

  * d/p/jdk-8254982-tzdata2020c.patch: update to tzdata2020c.

 -- Tiago Stürmer Daitx <email address hidden> Tue, 10 Nov 2020 04:18:42 +0000

Changed in openjdk-lts (Ubuntu):
status: New → Fix Released
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package openjdk-lts - 11.0.9.1+1-0ubuntu1~20.04

---------------
openjdk-lts (11.0.9.1+1-0ubuntu1~20.04) focal-security; urgency=medium

  * Backport from Hirsute.

openjdk-lts (11.0.9.1+1-0ubuntu1) hirsute; urgency=medium

  * OpenJDK 11.0.9+11 build (release).

  [ Matthias Klose ]
  * Configure --with-jvm-features=shenandoahgc for hotspot builds.
    LP: #1902029.

  [ Tiago Stürmer Daitx ]
  * Filter out recurring failed tests.
    - debian/failed-tests-problemlist.txt: list of tests known to
      have failed in the past.
    - debian/tests/control: add zip as some tests depend on it.
    - debian/tests/hotspot, debian/tests/jaxp, debian/test/jdk,
      debian/tests/langtools: exclude tests listed as failed tests,
      exit if jtreg exits 77 as no test was actually ran.
    - debian/tests/jtreg-autopkgtest.in: reduce retries from 3 to 2,
      exit early if test results are the same on retry, output time
      along name and status.
    - debian/tests/jtreg-autopkgtest.sh: regenerated.
    - d/p/hotspot-test-fix-npe-on-missing-file.patch: recurse only
      if src file exists, fixes test when libatk is a dangling link.

openjdk-lts (11.0.9+11-0ubuntu2) hirsute; urgency=medium

  * d/p/jdk-8254982-tzdata2020c.patch: update to tzdata2020c.

 -- Tiago Stürmer Daitx <email address hidden> Tue, 10 Nov 2020 04:18:42 +0000

Changed in openjdk-lts (Ubuntu):
status: New → Fix Released
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package openjdk-lts - 11.0.9.1+1-0ubuntu1~18.04

---------------
openjdk-lts (11.0.9.1+1-0ubuntu1~18.04) bionic-security; urgency=medium

  * Backport from Hirsute.

openjdk-lts (11.0.9.1+1-0ubuntu1) hirsute; urgency=medium

  * OpenJDK 11.0.9+11 build (release).

  [ Matthias Klose ]
  * Configure --with-jvm-features=shenandoahgc for hotspot builds.
    LP: #1902029.

  [ Tiago Stürmer Daitx ]
  * Filter out recurring failed tests.
    - debian/failed-tests-problemlist.txt: list of tests known to
      have failed in the past.
    - debian/tests/control: add zip as some tests depend on it.
    - debian/tests/hotspot, debian/tests/jaxp, debian/test/jdk,
      debian/tests/langtools: exclude tests listed as failed tests,
      exit if jtreg exits 77 as no test was actually ran.
    - debian/tests/jtreg-autopkgtest.in: reduce retries from 3 to 2,
      exit early if test results are the same on retry, output time
      along name and status.
    - debian/tests/jtreg-autopkgtest.sh: regenerated.
    - d/p/hotspot-test-fix-npe-on-missing-file.patch: recurse only
      if src file exists, fixes test when libatk is a dangling link.

openjdk-lts (11.0.9+11-0ubuntu2) hirsute; urgency=medium

  * d/p/jdk-8254982-tzdata2020c.patch: update to tzdata2020c.

 -- Tiago Stürmer Daitx <email address hidden> Tue, 10 Nov 2020 04:18:42 +0000

Changed in openjdk-lts (Ubuntu):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers