In CompiledMethod::oops_reloc_begin() there is code to prevent looking for oops at the verified entry of an nmethod that is not entrant. Except there would *never* be any immediate oops there, so this special case is completely unnecessary.
This gets increasingly awkward when oops_do is called concurrently with concurrent class unloading, where an nmethod is racing to become not entrant.
This gets increasingly awkward when oops_do is called concurrently with concurrent class unloading, where an nmethod is racing to become not entrant.