openjdk-lts 11.0.9+ could include Shenandoah GC on amd64

Bug #1902029 reported by TGL
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
openjdk-lts (Ubuntu)
Fix Released
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.

Tags: patch
Revision history for this message
TGL (tom-gl) wrote :
Revision history for this message
Ubuntu Foundations Team Bug Bot (crichton) wrote :

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
Revision history for this message
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
Revision history for this message
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
Revision history for this message
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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.