RFR (S) 8169867 Method::restore_unshareable_info does not invoke Method::link_method
tobias.hartmann at oracle.com
Mon Nov 21 07:53:32 UTC 2016
this looks good to me, the detailed description including the diagram is very nice and helps to understand the complex implementation!
For the record: the test mentioned in  is part of my fix for JDK-8169711.
On 21.11.2016 07:58, Ioi Lam wrote:
> Thanks to Tobias for finding the bug. I have done the following
> + integrated Tobias' suggested fix
> + fixed Method::restore_unshareable_info to call Method::link_method
> + added comments and a diagram to illustrate how the CDS method entry
> trampolines work.
> BTW, I am a little unhappy about the name ConstMethod::_adapter_trampoline.
> It's basically an extra level of indirection to get to the adapter. However.
> The word "trampoline" usually is used for and extra jump in executable code,
> so it may be a little confusing when we use it for a data pointer here.
> Any suggest for a better name?
>  I have tested Tobias' TestInterpreterMethodEntries.java class and
> now it produces the correct assertion. I won't check in this test, though,
> since it won't assert anymore after Tobias fixes 8169711.
> # after -XX: or in .hotspotrc: SuppressErrorAt=/method.cpp:1035
> # A fatal error has been detected by the Java Runtime Environment:
> # Internal Error (/home/iklam/jdk/ul/hotspot/src/share/vm/oops/method.cpp:1035), pid=16840, tid=16843
> # assert(entry != __null && entry == _i2i_entry && entry == _from_interpreted_entry) failed:
> # should be correctly set during dump time
>  Ran RBT in fastdebug build for hotspot/test/:hotspot_all,vm.parallel_class_loading,vm.runtime.testlist
> All tests passed.
> - Ioi
More information about the hotspot-dev