Closed pshipton closed 8 months ago
@mpirvu fyi
@cjjdespres This could be due to the changes to ROMClass packing.
That's one of the new asserts from the ROM class packing commit, so it is due to that. My first guess is that the ROM class walker is not visiting a section that it should be visiting.
It appears to be showing up in the JITServer nightly tests as well, the assert.
I may know what's wrong. At least, one of the things that is wrong. There is this writeVarHandleMethodTypeLookupTable
that gets run during ROM class creation here:
that ends up running this code here:
However, in https://github.com/eclipse-openj9/openj9/blob/master/runtime/util/romclasswalk.c I cannot see anything that walks this part of the ROM class. I would have expected a matching walking routine here:
but there isn't one. Also, if you search for J9VM_OPT_METHOD_HANDLE
in romclasswalk.c
there's only one result, these lines:
and nothing for the body of the table itself.
I inserted some macro calls into the ROM class writer that output a statement (including file line) whenever the cursor
changes count, and I can confirm that when writing the class java/util/concurrent/atomic/AtomicBoolean
(which caused a subsequent assert in packROMClass
in the functional test jit_jitt_openj9_none_SCC_2
) the last call in the top level ROMClassWriter::writeROMClass
to cause the cursor to change count is writeVarHandleMethodTypeLookupTable
. (Or at least the last call before the padding bytes).
I'll write something to fix it.
https://openj9-jenkins.osuosl.org/job/Test_openjdk11_j9_sanity.functional_ppc64le_linux_OpenJDK11_testList_0/78 testJITServer_1
https://openj9-artifactory.osuosl.org/artifactory/ci-openj9/Test/Test_openjdk11_j9_sanity.functional_ppc64le_linux_OpenJDK11_testList_0/78/functional_test_output.tar.gz