RFR (S): 8245509: Crash handler itself crashes when reporting Unsafe.putInt(0) crash
coleen.phillimore at oracle.com
coleen.phillimore at oracle.com
Mon Jun 1 22:45:53 UTC 2020
On 6/1/20 6:36 PM, David Holmes wrote:
> On 2/06/2020 7:21 am, coleen.phillimore at oracle.com wrote:
>> On 6/1/20 3:57 PM, gerard ziemski wrote:
>>> hi Coleen,
>>>
>>> On 6/1/20 1:33 PM, coleen.phillimore at oracle.com wrote:
>>>> In rev2, in the second part, can you move the ResourceMark just out
>>>> of the loop? Otherwise, looks good and I don't need to see another
>>>> webrev.
>>>
>>> I thought the ResourceMark should go with the operation it's meant
>>> for, to make the code more self documenting.
>
> Yes but you don't have to put it right before the op especially in
> loops. I only had it in the loop because I was not applying this change:
>
> - if (_verbose && _context && Universe::is_fully_initialized()) {
> + if (_verbose && _context && _thread &&
> Universe::is_fully_initialized()) {
>
> which I do not agree with. We are now excluding printing this
> information if we don't have an attached thread. It was okay to
> exclude "printing register info" because the next section printed
> similar info for when we do not have a _thread. It isn't clear to me
> that is the case here.
>
> I would prefer not to print less information if we don't have to
> exclude it.
If there's no current thread (which is 100% unlikely in this case) it
doesn't make any sense to print it's stack.
Coleen
>
> David
> -----
>
>>>
>>> Why does it need to go outside pf the loop? To minimize number of
>>> allocations?
>>
>> It sets an allocation marker in the Arena to allocate from in the
>> current thread. It's a pretty cheap operation, and it's for error
>> handling, so it can go inside the loop. Your change is fine.
>>
>> Coleen
>>
>>>
>>>
>>> cheers
>>
More information about the hotspot-runtime-dev
mailing list