[9] RFR(S): 8065740: compiler/codecache/OverflowCodeCacheTest.java fails with SIGSEGV
Igor Ignatyev
igor.ignatyev at oracle.com
Tue Nov 25 15:22:11 UTC 2014
Hi Tobias,
isn't it another manifestation of JDK-8064669[1,2] ?
[1] https://jbs.oracle.com/bugs/browse/JDK-8064669
[2]
http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2014-November/016283.html
Igor
On 11/25/2014 05:58 PM, Tobias Hartmann 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