RFR (S) 8208172: SIGSEGV when owner of invokedynamic bootstrap method throws an exception - Symbol::increment_refcount()+0x0

coleen.phillimore at oracle.com coleen.phillimore at oracle.com
Tue Aug 21 22:44:37 UTC 2018


Thanks, David.
Coleen

On 8/20/18 10:25 PM, David Holmes wrote:
> On 21/08/2018 10:30 AM, coleen.phillimore at oracle.com wrote:
>>
>>
>> On 8/20/18 7:56 PM, David Holmes wrote:
>>> Hi Coleen,
>>>
>>> Looks good.
>>>
>>> On 21/08/2018 6:04 AM, coleen.phillimore at oracle.com wrote:
>>>> Summary: make table for resolution errors not always expect 
>>>> non-null message string.
>>>
>>> Thanks for fixing this. I'm unsure why we thought there had to be a 
>>> detail message? AFAIK there is no specified requirement for this. 
>>> Obviously having a detail message is the most common case.
>>>
>>> I'm also not clear why we only hit this in the indy bootstrap case?
>>
>> We always create LinkageErrors in the vm with a message, so we 
>> expected one to always be present.  The case where it's converted to 
>> ExceptionInInitializerError hadn't been seen, or expected to be 
>> missing this information.  It's probably possible to write a test to 
>> have LinkageError =>  EIIE without indy.
>
> The obvious direct example to produce EIIE from a static initializer 
> doesn't induce the problem. Interesting ...
>
>>>
>>> One minor comment:
>>>
>>> src/hotspot/share/classfile/resolutionErrors.cpp
>>>
>>> void ResolutionErrorEntry::set_message(Symbol* c) {
>>>     _message = c;
>>> +   if (_message != NULL) {
>>>       _message->increment_refcount();
>>> +   }
>>>   }
>>>
>>> Is there any reason not to move the assignment inside the if clause 
>>> as well?
>>>
>>
>> The C++ class isn't zero initialized, so we have to initialize the 
>> message to NULL.
>
> And no constructor that does the init either - okay.
>
> Thanks,
> David
>
>> Thanks,
>> Coleen
>>
>>> Thanks,
>>> David
>>>
>>>> Tested with hs-tier1-2, and all hotspot/jtreg/runtime tests, and 
>>>> test added.
>>>>
>>>> open webrev at http://cr.openjdk.java.net/~coleenp/8208172.01/webrev
>>>> bug link https://bugs.openjdk.java.net/browse/JDK-8208172
>>>>
>>>> Thanks,
>>>> Coleen
>>



More information about the hotspot-runtime-dev mailing list