RFR(XS) 8011391: C1: assert(code_offset() - offset == NativeInstruction::nop_instruction_size) failed: only one instruction can go in a delay slot
Niclas Adlertz
niclas.adlertz at oracle.com
Tue Dec 17 08:14:10 PST 2013
Hi all,
The flag "VerifyOopMaps" is a non-product C1 only flag and does some but
not all of the verification that the "VerifyOops" flag does. But
"VerifyOopMaps" can cause problems. Since "VerifyOopMaps" temporarily
turns on the "VerifyOops" flag during a part of the compilation of a C1
method, it becomes a problem when multiple compiler threads are working
at the same time, causing VerifyOopMaps to be turned on and off at
random during a single compilation. This is what happens during this crash.
My suggested fix is to remove the "VerifyOopMaps" flag and instead use
the "VerifyOops" flag for Oop maps verification.
Another fix could be to internally set the "VerifyOopMaps" flag to false
if we run tiered and/or are using more than one compiler thread. A third
way could be to terminate the VM (and telling why) when having the
"VerifyOopMaps" flag enabled in tiered and/or when using multiple
compiler threads.
Kind Regards,
Niclas Adlertz
BUG: https://bugs.openjdk.java.net/browse/JDK-8011391
WEBREV: http://cr.openjdk.java.net/~adlertz/JDK-8011391/webrev00/
More information about the hotspot-compiler-dev
mailing list