[9] RFR(S): 8065740: compiler/codecache/OverflowCodeCacheTest.java fails with SIGSEGV
Tobias Hartmann
tobias.hartmann at oracle.com
Thu Nov 27 08:19:03 UTC 2014
Hi Igor,
thanks for the review but as Igor Ignatyev pointed out, this is a duplicate of
JDK-8064669 and will be fixed by his patch which is currently under review.
Would be good if someone could look at his RFR.
Thanks,
Tobias
On 26.11.2014 17:44, Igor Veresov wrote:
> Looks fine.
>
> igor
>
>> On Nov 25, 2014, at 6:58 AM, Tobias Hartmann <tobias.hartmann at oracle.com> wrote:
>>
>> Hi,
>>
>> please review the following patch.
>>
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8065740
>> Webrev: http://cr.openjdk.java.net/~thartmann/8065740/webrev.00/
>>
>> Problem:
>> The test allocates CodeBlobs in the code cache by using the Whitebox API method
>> 'WhiteBox::allocate_code_blob' introduced by JDK-8059624. The VM crashes while
>> sweeping because it encounters an allocated but uninitialized CodeBlob in the
>> code cache (crash happens in NMethodIterator::next_method because we call
>> '_code_blob->is_nmethod()' on an uninitialised CodeBlob).
>> The problem is that 'WhiteBox::allocate_code_blob' gives up the CodeCache_lock
>> before initializing the CodeBlob. This allows the sweeper thread to encounter a
>> yet uninitialized CodeBlob while iterating over the code cache.
>>
>> Solution:
>> I moved the initialization of the CodeBlob into the scope of the CodeCache_lock.
>> I also fixed some typos and removed a comment that became meaningless with
>> JDK-8046809.
>>
>> Testing:
>> - Failing testcase
>> - JPRT
>>
>> Thanks,
>> Tobias
>
More information about the hotspot-compiler-dev
mailing list