Request for reviews (M): 6990192: VM crashes in ciTypeFlow::get_block_for()
christian.thalinger at oracle.com
Tue Oct 19 02:45:15 PDT 2010
On Oct 18, 2010, at 7:07 PM, Christian Thalinger wrote:
> On Oct 18, 2010, at 6:41 PM, Tom Rodriguez wrote:
>> On Oct 18, 2010, at 9:25 AM, Christian Thalinger wrote:
>>> 6990192: VM crashes in ciTypeFlow::get_block_for()
>>> In SystemDictionary::find_method_handle_invoke when the classes of
>>> signature are not on the bootclasspath the method always returns the
>>> newly created method resulting in an assert in
>>> The fix is to set the first method coming in into the constant pool
>>> cache. To avoid races this is done atomically.
>>> Additionally the initialization of the invoke-method table is
>>> to be eagerly since initializing it lazily contains another race.
>> I don't think you want to use atomic_compare_exchange_oop since
>> that is for handling Java fields that might be compressed. The
>> fields in the cpCache are never compressed so you should just use
>> cmpxchg_ptr directly. Otherwise it seems ok.
> OK. I wasn't sure I can use cmpxchg_ptr directly, but since I'm
> handling the barriers myself it should be fine. Thanks!
I'm going to commit as:
Additionally I tested failing JRuby tests.
More information about the hotspot-compiler-dev