Segfault in CompiledMethod::is_unloading()
Andrew Haley
aph at redhat.com
Thu Nov 15 17:45:57 UTC 2018
I'm seeing a segfault at
state_is_unloading = IsUnloadingBehaviour::current()->is_unloading(this);
because
IsUnloadingBehaviour::_current == NULL
I see IsUnloadingBehaviour::set_current called earlier by the VM thread
with NULL as its argument.
Should this segfault be impossible? If so, why?
_is_unloading_state == 4 at this point.
Surely we should check that sUnloadingBehaviour::_current != NULL
before calling it?
The method being processed by NMethodSweeper::process_compiled_method
is:
755674 12888 aot[ 1] jdk.internal.reflect.Label.add(Ljdk/internal/reflect/ClassFileAssembler;SSI)V AOTCompiledMethod
This is a complex and hard-to-reproduce test case, so if anyone
can give me a clue about what's supposed to happen I'd appreciate
it.
--
Andrew Haley
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671
More information about the hotspot-gc-dev
mailing list