Open pshipton opened 4 years ago
@dsouzai not sure what's going on with the test hanging, but the AOT code in shared class cache cannot execute on current processor.
message seems wierd. Although also familiar like we discovered before why this occurs, due to different JVM options or something. Although the message could be more appropriate.
The reason for the AOT code in shared class cache cannot execute on current processor.
message is very likely because in Step 16
we're running with -Xaot:forceAot,disableAsyncCompilation,count=0
whereas in the previous steps that created the cache we didn't. We can't mismatch between synchronous and asynchronous compilation.
The error message code looks like:
void
TR_SharedCacheRelocationRuntime::incompatibleCache(U_32 module_name, U_32 reason, char *assumeMessage)
{
if (TR::Options::isAnyVerboseOptionSet())
{
TR_VerboseLog::writeLineLocked(TR_Vlog_INFO, "%s\n", assumeMessage);
}
if (javaVM()->sharedClassConfig->verboseFlags & J9SHR_VERBOSEFLAG_ENABLE_VERBOSE)
{
PORT_ACCESS_FROM_JAVAVM(javaVM());
j9nls_printf(PORTLIB, (UDATA) J9NLS_WARNING, module_name, reason);
}
}
The j9nls_printf
can't take a string so it uses J9NLS_RELOCATABLE_CODE_WRONG_HARDWARE
to print out the message. I suppose if we ran with -Xjit:verbose
or export TR_Options=verbose
. the assumeMessage
message would get printed out to stdout or stderr. However, we probably don't need to bother since I'm fairly certain it's the sync/async mismatch that's causing us to not be able to use the SCC.
As for the hang, it has nothing to do with AOT (because no AOT code could run).
Additional NLS messages can easily be added and used to print a more appropriate message.
Also, NLS messages can include string arguments, although that part obviously won't be translated. Here is the first example I found https://github.com/eclipse/openj9/blob/2cc3b1cf81180cc7a45817e8631de00681f99372/runtime/bcutil/jimageintf.c#L84
J9NLS_JIMAGE_INTF_LIBJIMAGE_SYMBOL_LOOKUP_FAILED=Failed to lookup symbol %s in jimage library
Ok I'll look into making the -Xshareclasses:verbose output better for these AOT header validation failures.
https://ci.eclipse.org/openj9/job/Test_openjdk8_j9_extended.system_x86-64_windows_Nightly/347
16.jvm4.stderr
16.jvm4.stdout
16.jvm4.jvmdump.stderr
16.jvm4.jvmdump.stdout