RFR(S): 8175178: Stack traversal during OSR migration asserts with invalid bci or invalid scope desc on x86

Markus Gronlund markus.gronlund at oracle.com
Fri Feb 17 12:29:33 UTC 2017


Greetings,

 

Kindly asking for reviews for the following changeset:

 

Bug: https://bugs.openjdk.java.net/browse/JDK-8175178 

Webrev: http://cr.openjdk.java.net/~mgronlun/8175178/webrev01/ 

 

Summary:

 

vframeStream stack traversal can assert on x86 when trying to decode an interpreter frame that is in the process of being migrated for On-Stack Replacement (OSR). This is because the interpreter frame does not have a valid bcp, it instead has an nmethod in the bcp slot (the OSR nmethod). 

# 
# A fatal error has been detected by the Java Runtime Environment: 
# 
# Internal Error (distro/s/hotspot/src/share/vm/runtime/vframe.cpp:472), pid=3624, tid=3640 
# assert(false) failed: invalid bci or invalid scope desc 
# 

There is currently a save operation that uses r13 for saving the OSR nmethod over the VM call into SharedRuntime::OSR_migration_begin(). This has the side-effect of installing the OSR nmethod into the interpreter frame bcp slot.

 

Thanks

Markus


More information about the hotspot-runtime-dev mailing list