JDK-8240529 : CheckUnhandledOops breaks NULL check in Modules::define_module
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 11,14,15
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2020-03-04
  • Updated: 2022-06-27
  • Resolved: 2020-03-11
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 11 JDK 13 JDK 15
11.0.8-oracleFixed 13.0.4Fixed 15 b14Fixed
Description
Because of this most tests fail to start with exploded builds.

CheckUnhandledOops overwrites any oops found on the stack, whenever a safepoint transition might happen.

It even changes the values of NULL oops. This causes the following code to fail:
   // If the module is defined to the boot loader and an exploded build is being
   // used, prepend <java.home>/modules/modules_name to the system boot class path.
  if (loader == NULL && !ClassLoader::has_jrt_entry()) {
     ClassLoader::add_to_exploded_build_list(module_symbol, CHECK);
   }

because loader isn't NULL anymore.
Comments
Fix request (13u): The original change applies cleanly, tier1 tests pass.
05-06-2020

Fix Request (11u) This makes +CheckUnhandledOops-enabled test runs more stable. Patch applies cleanly to 11u, passes tier1.
12-03-2020

URL: https://hg.openjdk.java.net/jdk/jdk/rev/bb44e0d9fe1f User: stefank Date: 2020-03-11 09:38:48 +0000
11-03-2020

ILW = HLM = P3
10-03-2020