RFR (XXS) 8066292: Test java/nio/file/Files/CheckPermissions.java triggers stack overflow with -server -Xcomp

Dean Long dean.long at oracle.com
Wed Feb 24 01:59:06 UTC 2016


On 2/23/2016 4:28 PM, Dean Long wrote:
> On 2/23/2016 2:03 PM, Vladimir Kozlov wrote:
>> On 2/22/16 2:31 PM, Dean Long wrote:
>>> https://bugs.openjdk.java.net/browse/JDK-8066292
>>>
>>> http://cr.openjdk.java.net/~dlong/8066292/webrev/
>>>
>>> With -Xcomp, a cycle between compile requests and class loading can 
>>> cause infinite recursion resulting in
>>> StackOverflowError's that are silently ignored.  To break the cycle, 
>>> this changeset removes the ancient call to
>>> Method::load_signature_classes() for C2.  This call is no longer 
>>> needed.
>>
>> "This call is no longer needed" because ...? Why it is not needed? C2 
>> can't compile methods if these classes are not loaded.
>>
>
> That was my understanding from internal discussions.  Chris or John, 
> can you chime in here?
>
> I know that C2 creates placeholder classes if a class isn't loaded. 
> Can you point me to where we fail the compilation is signature classes 
> are not loaded?
>
> dl
>

Hi Vladimir, I took another look, and I think you must have been 
thinking about inlining.  Yes, we won't inline a callee if its signature 
classes aren't loaded.  But if we really wanted to maximum inlining for 
-Xcomp mode, (which some people think should just go away), wouldn't it 
be better to execute the method in the interpreter a few times, so that 
more of the callee tree would have its classes loaded?

dl

>> Thanks,
>> Vladimir
>>
>>>
>>> Tested in RBT with --test
>>> vm.compiler.testlist,hotspot/test/:hotspot_compiler_closed,hotspot/test/:hotspot_compiler_1,hotspot/test/:hotspot_compiler_2,hotspot/test/:hotspot_compiler_3 
>>>
>>>
>>>
>>> dl
>



More information about the hotspot-compiler-dev mailing list