RFR (XXS): 8024275: During CTW: assert(sig_bt[member_arg_pos] == T_OBJECT) failed: dispatch argument must be an object

Christian Thalinger christian.thalinger at oracle.com
Tue Sep 10 15:43:48 PDT 2013


On Sep 10, 2013, at 3:11 PM, Vladimir Ivanov <vladimir.x.ivanov at oracle.com> wrote:

> On 9/11/13 1:48 AM, Christian Thalinger wrote:
>> 
>> On Sep 10, 2013, at 2:41 PM, Vladimir Ivanov <vladimir.x.ivanov at oracle.com> wrote:
>> 
>>> Chris,
>>> 
>>> Thanks for fixing this!
>>> 
>>> Minor commments:
>>> 
>>> 	- can you rename (for now) can_be_compiled method to something specific to CTW to disambiguate it?
>> 
>> I can but it's unique because there is no other can_be_compiled in ClassLoader.
> Ok. I was thinking mostly about can_be_compiled() vs CompilationPolicy::can_be_compiled(). But assert in the beginning is good enough.
> 
>>> 	- why do you place "... Skipping method: ..." message under the guard? I'd prefer to be verbose here.
>> 
>> Because we are already skipping methods for other reasons and it would change the output.  Being paranoid here to not break any existing tests.
> Sometimes tests should be broken. So we know where to fix them :-)
> I haven't found any tests which exercise -XX:+CompileTheWorld, so it should be safe.

So you want me to remove the Verbose guard?

-- Chris

> 
> Best regards,
> Vladimir Ivanov
> 
>> 
>> -- Chris
>> 
>>> 
>>> Otherwise, looks good (not a Reviewer).
>>> 
>>> Best regards,
>>> Vladimir Ivanov
>>> 
>>> On 9/11/13 1:16 AM, Christian Thalinger wrote:
>>>> http://cr.openjdk.java.net/~twisti/8024275/webrev/
>>>> 
>>>> 8024275: During CTW: assert(sig_bt[member_arg_pos] == T_OBJECT) failed: dispatch argument must be an object
>>>> Reviewed-by:
>>>> 
>>>> The issue is that we cannot compile MethodHandle::linkTo* when doing a CompileTheWorld since the signatures are not correct.
>>>> 
>>>> The fix is to skip these methods during a CTW.
>>>> 
>>>> src/share/vm/classfile/classLoader.cpp
>>>> 
>> 



More information about the hotspot-compiler-dev mailing list