Skip to content

Latest commit

 

History

History
179 lines (142 loc) · 10.5 KB

0.44.md

File metadata and controls

179 lines (142 loc) · 10.5 KB

Eclipse OpenJ9 version 0.44.0 release notes

These release notes support the Eclipse OpenJ9™ 0.44.0 release plan.

Supported environments

OpenJ9 release 0.44.0 supports OpenJDK 8, 11, 17, and 21.

All releases are tested against the OpenJ9 functional verification (FV) test suite, the OpenJDK test suites, and additional tests provided by Adoptium.

To learn more about support for OpenJ9 releases, including OpenJDK levels and platform support, see Supported environments.

Notable changes in this release

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

Issue number Description Version / Platform Impact
#18900 Change in behavior of the -Djava.security.manager system property for OpenJDK version 8. OpenJDK 8

In OpenJDK versions before version 18, attempts to load a SecurityManager with the class name allow or disallow resulted in an error and the application was not starting.

To resolve this issue, OpenJDK version 17 ignores these options and from 0.41.0 release onwards, OpenJDK version 11 also ignores these options.

With this release, OpenJDK version 8 too ignores the allow and disallow keywords, if specified.

#17990, #18845 Display of multiple warnings on loading the same agent is now restricted on AIX systems. OpenJDK 21 and later (AIX) Earlier, on AIX systems, warnings were issued each time the agents were loaded dynamically into a running VM after startup without specifying the `-XX:+EnableDynamicAgentLoading` option. These multiple warnings were issued even if the same agents were loaded before.

Now, from the 0.44.0 release onwards, AIX systems, like other OpenJ9 supported operating systems, can detect whether an agent was previously loaded or not. Therefore, like other platforms, on AIX systems also, the warnings are issued only once for the same agent when the -XX:+EnableDynamicAgentLoading option is not specified.

#18342 XL C++ Runtime 16.1.0.7 or later is required for AIX OpenJ9 builds on OpenJDK 8. OpenJDK 8 (AIX) Earlier, XL C++ Runtime 16.1.0.7 or later was required for AIX OpenJ9 builds on OpenJDK 11 and later. Now, AIX OpenJ9 builds require version 16.1.0.7 or later of the XL C++ Runtime on OpenJDK 8 as well.
#18218 The -XX:[+|-]ShowUnmountedThreadStacksoption is added to control the inclusion of the unmounted virtual threads in a Java™ core file. OpenJDK 21 and later Java core file lists stacks of only those threads that are mapped to platform threads. An unmounted virtual thread is not mapped to any platform thread. Therefore, the stack of any unmounted virtual thread is not included in the Java core file and thus, the virtual thread information remains incomplete.

You can use the -XX:+ShowUnmountedThreadStacks option to include all the thread data that a VM is aware of, both regular Java threads and the unmounted virtual threads, in a Java core file.

#19173 Flag names that refer to the fields of J9BuildFlags are changed in the Direct Dump Reader (DDR) code All versions User plug-ins in the DDR code might contain code that has J9BuildFlags references to read the build flags in the system dump data. The names of J9BuildFlags fields changed over time and therefore, supporting system dumps with different build flags became a challenge.

Earlier, field names in J9BuildFlags were based on names defined in j9.flags. Now, when the J9BuildFlags is generated for each build, the flag names are those names that are specified in j9cfg.h (derived from j9cfg.h.ftl or j9cfg.h.in) instead of the names that are defined in j9.flags.

If the plug-in code contains references to fields of J9BuildFlags to read the build flags in the system dump data, you must change references to use the names as specified in j9cfg.h.

#19045, #19069, VMID query in the jcmd tool enhanced All versions Earlier in OpenJ9, when sending a jcmd command to a VM, you had to run jcmd -l to retrieve the pids for all the VMs found on the machine. Then, you had to use jcmd [vmid] [command] to send the command to the specific VM.

For OpenJDK compatibility, OpenJ9 now supports direct use of the Java process name, full or partial, as the ID to send the jcmd command.

The jcmd tool also now supports specifying 0 as a VMID to target all VMs.

#18720, #18996 A new system property, -Dcom.ibm.tools.attach.fileAccessUpdateTime, is added to prevent automatic deletion of the Attach API control files in the /tmp folder. All versions (Linux®) In Linux environments, by default systemd-tmpfiles automatically deletes all files and directories that are stored in the /tmp/ folder that have not been changed or read within a specific time period. This deletion of files creates a problem for long running VM processes, such as Attach API, that need the control files in the /tmp/ folder to operate.

You can prevent the automatic deletion of the Attach API control files in the /tmp folder by setting the -Dcom.ibm.tools.attach.fileAccessUpdateTime system property. By default, this system property is set to 8 days.

N/A CentOS Stream 8 is out of support. All versions (CentOS Stream 8) CentOS Stream 8 is EOL from May 31, 2024 onwards and is removed from the list of supported platforms.

Known issues

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

Issue number Description Platform Impact Workaround
#15011 The default stack size for the main thread is a smaller platform-dependent value. All The main thread stack size was 1 MB in releases before 0.32. In the 0.32 release and later it was modified to a smaller platform-dependent value, the same value as the -Xmso setting. The 0.33 release increased the default -Xmso stack size on x64 platforms, but builds with OpenJDK 17 and later also require more stack space to run. These changes might result in a java.lang.StackOverflowError: operating system stack overflow. Use -Xmso to set the default stack size. See the default value by using -verbose:sizes.
#13767 Compressed references mode is not available. Apple silicon macOS You can use only the large heap (non-compressed references) mode. None
#14803 Using the -XX:+ShowHiddenFrames option in an OpenJ9 release that is built with OpenJDK 18 and later causes errors. All platforms Wrong exception might be thrown when using the Reflection API. Avoid using the -XX:+ShowHiddenFrames option with OpenJDK 18 and later.

Other changes

A full commit history for 0.44.0 release is available at Eclipse OpenJ9 v0.44.0.