** Description changed:

- 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] 
+ [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.
+  * 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.
+ 
+ In order to check the binary compatibility of the generated jar and jni:
+ 
+ $ apt-get install libcephfs-java ceph-test \
+     openjdk-11-jre-headless # or openjdk-8-jre-headless
+ 
+ $ /usr/lib/jvm/java-8-openjdk-amd64/bin/java \
+     -DCEPH_CONF_FILE=/etc/ceph/ceph.conf \
+     -Djava.library.path=/usr/lib/jni/ \
+     -cp 
/usr/share/java/junit4.jar:/usr/share/java/libcephfs.jar:/usr/share/java/libcephfs-test.jar
 \
+     org.junit.runner.JUnitCore \
+     com.ceph.fs.CephAllTests
+ 
+ It should report back:
+ FAILURES!!!
+ Tests run: 27,  Failures: 4
+ 
+ The 4 failures are:
+ 
+ 1) test_double_mount(com.ceph.fs.CephDoubleMountTest)
+ java.lang.Exception: Unexpected exception, 
expected<com.ceph.fs.CephAlreadyMountedException> but 
was<java.io.FileNotFoundException>
+ 2) test_CephMountCreate(com.ceph.fs.CephMountCreateTest)
+ java.io.FileNotFoundException: 
+ 3) com.ceph.fs.CephMountTest
+ java.io.FileNotFoundException: 
+ 4) com.ceph.fs.CephMountTest
+ java.lang.NullPointerException: @path is null
+ 
+ which is caused by the fact that ceph itself is not running nor mounted.
+ 
  
  [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.
+  * 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.
- 
+  * 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

** Summary changed:

- ceph: replace -source/-target 1.8 with --release 7
+ [[SRU] ceph: replace -source/-target 1.8 with --release 7

** Description changed:

  [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.
  
  In order to check the binary compatibility of the generated jar and jni:
  
  $ apt-get install libcephfs-java ceph-test \
-     openjdk-11-jre-headless # or openjdk-8-jre-headless
+     openjdk-11-jre-headless # or openjdk-8-jre-headless
  
- $ /usr/lib/jvm/java-8-openjdk-amd64/bin/java \
-     -DCEPH_CONF_FILE=/etc/ceph/ceph.conf \
-     -Djava.library.path=/usr/lib/jni/ \
-     -cp 
/usr/share/java/junit4.jar:/usr/share/java/libcephfs.jar:/usr/share/java/libcephfs-test.jar
 \
-     org.junit.runner.JUnitCore \
-     com.ceph.fs.CephAllTests
+ # replace with java-8-openjdk-amd64 for openjdk-8
+ $ /usr/lib/jvm/java-11-openjdk-amd64/bin/java \
+     -DCEPH_CONF_FILE=/etc/ceph/ceph.conf \
+     -Djava.library.path=/usr/lib/jni/ \
+     -cp 
/usr/share/java/junit4.jar:/usr/share/java/libcephfs.jar:/usr/share/java/libcephfs-test.jar
 \
+     org.junit.runner.JUnitCore \
+     com.ceph.fs.CephAllTests
  
  It should report back:
  FAILURES!!!
  Tests run: 27,  Failures: 4
  
  The 4 failures are:
  
  1) test_double_mount(com.ceph.fs.CephDoubleMountTest)
  java.lang.Exception: Unexpected exception, 
expected<com.ceph.fs.CephAlreadyMountedException> but 
was<java.io.FileNotFoundException>
  2) test_CephMountCreate(com.ceph.fs.CephMountCreateTest)
- java.io.FileNotFoundException: 
+ java.io.FileNotFoundException:
  3) com.ceph.fs.CephMountTest
- java.io.FileNotFoundException: 
+ java.io.FileNotFoundException:
  4) com.ceph.fs.CephMountTest
  java.lang.NullPointerException: @path is null
  
  which is caused by the fact that ceph itself is not running nor mounted.
- 
  
  [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

** Summary changed:

- [[SRU] ceph: replace -source/-target 1.8 with --release 7
+ [SRU] ceph: replace -source/-target 1.8 with --release 7

** Description changed:

  [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.
  
  In order to check the binary compatibility of the generated jar and jni:
  
  $ apt-get install libcephfs-java ceph-test \
      openjdk-11-jre-headless # or openjdk-8-jre-headless
  
  # replace with java-8-openjdk-amd64 for openjdk-8
  $ /usr/lib/jvm/java-11-openjdk-amd64/bin/java \
      -DCEPH_CONF_FILE=/etc/ceph/ceph.conf \
      -Djava.library.path=/usr/lib/jni/ \
      -cp 
/usr/share/java/junit4.jar:/usr/share/java/libcephfs.jar:/usr/share/java/libcephfs-test.jar
 \
      org.junit.runner.JUnitCore \
      com.ceph.fs.CephAllTests
  
  It should report back:
  FAILURES!!!
  Tests run: 27,  Failures: 4
  
  The 4 failures are:
  
  1) test_double_mount(com.ceph.fs.CephDoubleMountTest)
  java.lang.Exception: Unexpected exception, 
expected<com.ceph.fs.CephAlreadyMountedException> but 
was<java.io.FileNotFoundException>
  2) test_CephMountCreate(com.ceph.fs.CephMountCreateTest)
  java.io.FileNotFoundException:
  3) com.ceph.fs.CephMountTest
  java.io.FileNotFoundException:
  4) com.ceph.fs.CephMountTest
  java.lang.NullPointerException: @path is null
  
  which is caused by the fact that ceph itself is not running nor mounted.
  
+ The test case results should be the exact same with and without the
+ patch applied, for both openjdk-8 and openjdk-11. This should indicate
+ that the running tests are not being affected by the flag change.
+ 
  [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

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

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

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

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to