[Bug 1766998] [NEW] ceph: replace -source/-target 1.8 with --release 7

Tiago Stürmer Daitx 1766998 at bugs.launchpad.net
Wed Apr 25 23:18:55 UTC 2018


Public bug reported:

I am formatting this as an SRU, but as there is no known regression I
will not be subscribing the ubuntu-sru team. I will leave it up to the
maintainer to decide if this is worth an SRU (maybe together with bug
#1766995). It can also be reviewed later on when openjdk-11 is SRUed to
Bionic.


[Impact] 
The fix for bug #1756854 updated the -source and -target from 1.5 to 1.8 to allow the build to succeed with openjdk-9 as well as to keep compatibility with openjdk-11.

That change missed the fact that the right way to set the target jdk
level in openjdk-9 is to actually use the --release flag, introduced by
JEP-247 [1]. By using the --release flag the right bootclasspath is also
set, which prevents API compatibility problems when running the compiled
jar/classes with older jdks (including the targeted one) [2,3].

Also, while JEP-182 [4] indicated that OpenJDK-11 would only allow a
minimum source/target of 1.8, that later changed due to introduction of
a 6-month release cycle, which moved the minimum source/target to 1.6
for openjdk-10 [5] and to 1.7 for openjdk-11 [6].

Thus the proposal is to move from "-source 1.8 -target 1.8" to "--
release 7" in order to accommodate both changes.

Currently ceph does not seem to make use any of the known APIs that can
cause such failure when run with openjdk-8, but there is a risk of
openjdk-11 introducing additional changes that could change that.

[Test Case]
 * There is no known use case for it yet: of the known API incompatibilities none seems to be used by cephs-java, but that only goes as far as openjdk-9 and openjdk-10.

[Regression Potential]
 * There is no known regression; these changes should actually improve ceph compatibility with openjdk-8 code by using --release to set the right bootclasspath.

[Other Info]
 * openjdk-8 is being kept in the universe pocket for bionic and will be supported until xenial EOL (as it is in xenial's release pocket), thus it is important to guarantee that our packages can also be run and build with openjdk-8.


[References]
[1] http://openjdk.java.net/jeps/247
[2] https://github.com/plasma-umass/doppio/issues/497#issuecomment-353394008
[3] https://bugs.debian.org/895616
[4] http://openjdk.java.net/jeps/182
[5] https://bugs.openjdk.java.net/browse/JDK-8028563
[6] https://bugs.openjdk.java.net/browse/JDK-8173605

** Affects: ceph (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to ceph in Ubuntu.
https://bugs.launchpad.net/bugs/1766998

Title:
  ceph: replace -source/-target 1.8 with --release 7

Status in ceph package in Ubuntu:
  New

Bug description:
  I am formatting this as an SRU, but as there is no known regression I
  will not be subscribing the ubuntu-sru team. I will leave it up to the
  maintainer to decide if this is worth an SRU (maybe together with bug
  #1766995). It can also be reviewed later on when openjdk-11 is SRUed
  to Bionic.

  
  [Impact] 
  The fix for bug #1756854 updated the -source and -target from 1.5 to 1.8 to allow the build to succeed with openjdk-9 as well as to keep compatibility with openjdk-11.

  That change missed the fact that the right way to set the target jdk
  level in openjdk-9 is to actually use the --release flag, introduced
  by JEP-247 [1]. By using the --release flag the right bootclasspath is
  also set, which prevents API compatibility problems when running the
  compiled jar/classes with older jdks (including the targeted one)
  [2,3].

  Also, while JEP-182 [4] indicated that OpenJDK-11 would only allow a
  minimum source/target of 1.8, that later changed due to introduction
  of a 6-month release cycle, which moved the minimum source/target to
  1.6 for openjdk-10 [5] and to 1.7 for openjdk-11 [6].

  Thus the proposal is to move from "-source 1.8 -target 1.8" to "--
  release 7" in order to accommodate both changes.

  Currently ceph does not seem to make use any of the known APIs that
  can cause such failure when run with openjdk-8, but there is a risk of
  openjdk-11 introducing additional changes that could change that.

  [Test Case]
   * There is no known use case for it yet: of the known API incompatibilities none seems to be used by cephs-java, but that only goes as far as openjdk-9 and openjdk-10.

  [Regression Potential]
   * There is no known regression; these changes should actually improve ceph compatibility with openjdk-8 code by using --release to set the right bootclasspath.

  [Other Info]
   * openjdk-8 is being kept in the universe pocket for bionic and will be supported until xenial EOL (as it is in xenial's release pocket), thus it is important to guarantee that our packages can also be run and build with openjdk-8.

  
  [References]
  [1] http://openjdk.java.net/jeps/247
  [2] https://github.com/plasma-umass/doppio/issues/497#issuecomment-353394008
  [3] https://bugs.debian.org/895616
  [4] http://openjdk.java.net/jeps/182
  [5] https://bugs.openjdk.java.net/browse/JDK-8028563
  [6] https://bugs.openjdk.java.net/browse/JDK-8173605

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ceph/+bug/1766998/+subscriptions



More information about the Ubuntu-openstack-bugs mailing list