RFR: 8220095: Assertion failure when symlink (with different name) is used for lib/modules file

Jiangli Zhou jianglizhou at google.com
Wed Mar 6 23:20:27 UTC 2019

Please review the following fix for 8220095.

webrev: http://cr.openjdk.java.net/~jiangli/8220095/webrev.00/
bug: https://bugs.openjdk.java.net/browse/JDK-8220095

Symbolic links may be used commonly in some cloud environments. The target
files might have different names than the linked names. The VM crashes when
'lib/modules' links to a target file with a different name, for example,
lib/modules -> lib/0.

The usage of the hard-coded MODULES_IMAGE_NAME (used by
ClassLoader::is_modules_image(const char*)) can become problematic in this
case and leads to assertion failures and crashes in this case. The
checks always fail even the actual file is the runtime image because the
canonical paths (which might not end with 'modules') are passed in for the
check. The fix is to obtain the real name from the canonical path early
during initialization and use that for the is_modules_image() check.

Tested with submit repo testing, tier1, tier2, and hotspot runtime tests


More information about the hotspot-runtime-dev mailing list