Skip to content

Latest commit

 

History

History
272 lines (237 loc) · 17.9 KB

0.9.md

File metadata and controls

272 lines (237 loc) · 17.9 KB

Eclipse OpenJ9 version 0.9.0 release notes

These release notes support the Eclipse OpenJ9 0.9.0 release plan.

Binaries and supported environments

The following additional OpenJDK binaries that contain the OpenJ9 VM are now available from the AdoptOpenJDK community:

Builds are tested against the OpenJ9 functional verification (FV) test suite, the OpenJDK test suites, and additional tests at AdoptOpenJDK. Not all tests are complete for AIX and Windows platforms.

For a full OpenJ9 support statement, see Supported environments.

Notable changes in this release

The following table covers notable changes in v0.9.0. Further information about these changes can be found in the user documentation.

Issue number Description Platform Impact
#1288 SharedClassCacheInfo no longer contains a JVMLEVEL constant OpenJDK10 and later: All platforms SharedClassCacheInfo.getCacheJVMLevel() used to return the JVMLEVEL constant that maps to a Java version number, for example JVMLEVEL_JAVA8. This call now returns only the Java version number, for example 10 for Java 10.
#1370 New nogc GC policy All platforms Under this policy, no memory is reclaimed through garbage collection. The Java object heap is expanded until an OutOfMemory error is generated and the VM shuts down.
Enable this policy with the -Xgcpolicy:nogc or -XX:+UseNoGC options.
You might use this mode for testing or for short-lived applications.
#378 DDR support is now available Linux, Windows Ability to diagnose problems with the VM, garbage collector, or JIT.
#1699 Specify heap limits as a percentage of total memory All platforms Ability to easily set heap limits with the -XX:MaxRAMPercentage and -XX:InitialRAMPercentage options instead of statically setting them with the -Xmx and -Xms options.
#1668 Idle tuning feature enabled Linux on Z, Linux on Power systems In addition to the support already available, there is the ability to maintain a minimal memory footprint during the life time of an application. See:
-XX:[+|-]IdleTuningCompactOnIdle,
-XX:[+|-]IdleTuningGcOnIdle,
-XX:IdleTuningMinIdleWaitTime, and
-XX:IdleTuningMinFreeHeapOnIdle
#1517 Changes to the default Java heap size for applications that run inside a container Linux By default, 75% of the physical memory is allocated for the maximum Java heap setting when the -XX:+UseContainerSupport option is set.
#1500 Support for nested jar files All platforms Improvements to the com.ibm.oti.shared API for manipulating nested jar files, such as used by Spring.
#1786 Changes to OpenJ9 java.lang.String class and use of OpenJDK StringBuffer and StringBuilder OpenJDK 9+, all platforms To match the behavior of OpenJDK, java.lang.String no longer has a count field, which changes the way that String.subString() works compared to Java 8. Similarly StringBuffer and StringBuilder do not share the value array with any String created by toString().
#1603, #1642, eclipse/omr#2494, eclipse/omr#2524 Full support for shutdown signals All Linux variants, AIX For shutdown signals (SIGINT, SIGTERM and SIGHUP), a Java signal handler can be registered. The default Java shutdown handler is properly registered for shutdown signals. Similarly, a Java signal handler can be registered for SIGCONT.
#1816 Temporary solution to support shutdown signal handlers on Windows Windows A native shutdown handler is registered for shutdown signals (Ctrl+C, SIGINT and SIGTERM). A shutdown handler is responsible for invoking java.lang.Shutdown.exit.

Known Issues

The v0.9.0 release contains the following known issues and limitations:

Issue number Description Platform Impact Workaround
#378 DDR support AIX Inability to diagnose problems with the VM, garbage collector, or JIT. None
#54 Signal handling All platforms Currently, shutdown signals (SIGINT, SIGHUP and SIGTERM) and SIGCONT are fully supported on Unix platforms (pLinux, zLinux, xLinux, AIX and zOS). Full support for shutdown signals is pending on Windows; signal handlers cannot be registered by using sun.misc.Signal or dk.internal.misc.Signal. Also, support for other POSIX signals is pending. See SunMiscSignalTest.java for the list of signals that need to be supported. None
#479 Non-compressed references VM builds not available AIX, Windows, Linux on Z, Linux on Power Heaps larger than 57GB are not supported. Manual builds are possible by following our detailed build instructions.
#1938 Default shared classes cache size (16MB) is too small on Java 8 64-bit binaries. All platforms Poorer performance for applications that could benefit from a larger cache size. Manually set the shared cache size to at least 60 MB when you start your application (-Xscmx60m).
#897 Javadoc not building some OpenJ9 extensions. All platforms Some API documentation is missing in the build/<platform>/docs directory. None
#898 Javadoc building some unsupported OpenJ9 extensions. All platforms Some API documentation in build/<platform>/docs is not supported with OpenJ9. None
#17 Builds contain extra shared libraries. All platforms Shared libraries must not be used in production. None

Functional verification tests

The following issues (in numerical order) relate to test failures:

#244 testCrNocr in VmArgumentTests failed - java.lang.AssertionError: Target process failed
#366 cmdLineTest: cmdLineTester_jep178_staticLinking_SE90 failed due to cannot find /lib/amd64/compressedrefs/testjep178_static
#480 j9vm.test.softmx.SoftmxRemoteTest.setUp server is not ready after 120 seconds
#1127 jdk_io test error
#1128 jdk_lang test failures
#1129 jdk_net test failure
#1130 jdk_nio test failures
#1131 jdk_util test failures
#1144 jdk_rmi test failures
#1151 ARM Hang while compiling test/Jsr292
#1203 TestUTF8 fails with assertion Unsafe_copySwapMemory0 is unimplemented
#1205 ARM sigbus from initialiseAOTRelocationHeader
#1209 ARM Assertion in J9TransformUtil.cpp
#1212 ARM JVM_GetVmArguments not implemented
#1430 openjdk9-openj9 jdk_lang test failures
#1431 openjdk9-openj9 jdk_io test failures
#1432 openjdk9-openj9 jdk_net test failures
#1433 openjdk9-openj9 jdk_nio test failures
#1434 openjdk9-openj9 jdk_util test failures
#1435 openjdk9-openj9 jdk_rmi test failures
#1566 java.lang.IllegalArgumentException: argument type mismatch received in JMX Bean test in Hotspot, but none in OpenJ9
#1626 JDK10 JLM_Tests_interface FAILED
#1765 Annotation testing failures
#1796 ARM: Hang in SharedClassesSysVTesting_0
#1814 SCCommandLineOptionTests/SCURLClassLoaderNPTest failed on JDK10-win_x86-64_cmprssptrs
#2019 Test-Extended-JDK8-linux_ppc-64_cmprssptrs_le TestAttachErrorHandling OOM in attach API
#2047 Intermittent NullPointerException in TestAttachErrorHandling.deleteIpcDirectories
#2114 cmdLineTester_jvmtitests_hcr_3 functional sanity rc010 gpf
#2129 Windows JDK8 jvmti tests failed with "NPT ERROR: Cannot open library"
#2141 Test-Extended-JDK8-aix_ppc-64_cmprssptrs startupShutdownRobustness IOException: Error deleting
#2213 Test-Extended-JDK8-win_x86 testOpenJ9DiagnosticsMXBean_0 hangs
#2227 Test-sanity.system-JDK10-linux_ppc-64_cmprssptrs_le Jlink directory count not be found
#2363 systemtest failed to build Test-sanity.system-JDK8-linux_390-64_cmprssptrs
#2385 DaaLoadTest_daa1_0 Test-sanity.system-JDK10-linux_x86-64 Segmentation error vmState=0x000507ff
#2472 cmdLineTester_jvmtitests_hcr_OSRG_nongold_1 Test-extended.functional-JDK10-linux_x86-64 rc004 gpf

Because some tests are not yet enabled, functional problems might not be exposed. In addition, some IBM authored functional verification testing is not yet contributed to Eclipse, such as issue #724.

Other changes

The issues addressed in this release are listed at Eclipse OpenJ9 v0.9.0.