RFR(XS): 8232921: assert(is_object_aligned(result)) failed: address not aligned

coleen.phillimore at oracle.com coleen.phillimore at oracle.com
Thu Oct 31 15:42:45 UTC 2019

On 10/31/19 9:20 AM, Lindenmaier, Goetz wrote:
> Hi Coleen,
>>> java_lang_Boolean::get_TRUE is not working during the initialization
>>> because the offsets are not yet set: java_lang_Boolean::_static_TRUE_offset
>>> is zero.
>> I don't understand this sentence.  The patch 02 looks like it
>> initializes it at the right place.  It doesn't work?
> Yes, patch 02 works. I just wanted to reason why I'm not using
> get_TRUE()... just ignore ...
> Another possibility, much more local, and using Boolean::TRUE, is this:
> http://cr.openjdk.java.net/~goetz/wr19/8232921-fix_hidden_frames/03/
> It uses _method as a fallback during initialization. Actually, this should never
> happen with the current VM. It does not throw exceptions with hidden frames
> during initialization. I only ran into this during testing when I forced all
> exceptions to call get_TRUE.
> I still think 01 is the most simple :).

I definitely don't like 03.  I think you should go with 01.  The 
comments are good.

>> On second thought, I think I agree with you.  01 looks better, and if
>> you can add the comment in BacktraceBuilder, it would be fine.
> 01 with the comment added:
> http://cr.openjdk.java.net/~goetz/wr19/8232921-fix_hidden_frames/01a/
> Best regards,
>    Goetz.
>> thanks,
>> Coleen
>>> webrev 01 passed our testing tonight.
>>> Best regards,
>>>     Goetz.
>>>> I don't think there's any downside to
>>>> putting the methods array there, but it's really mind blowing.
>>>> Sorry I didn't notice this in the review.  I should have looked more
>>>> closely when I saw the PauseNoSafepointVerifier.
>>>>      // GC unsafe class for assigning backtrace elements.  Allocation is
>>>> only allowed
>>>>      // in expand().
>>>>      NoSafepointVerifier _nsv;
>>>> You could add a comment like this.
>>>> Coleen
>>>> On 10/29/19 10:32 AM, Lindenmaier, Goetz wrote:
>>>>> Hi,
>>>>> Originally, I wanted to model indicating that frames
>>>>> have been dropped nicely in Java using
>>>>> a meaningful java object. Exceptions in hidden frames
>>>>> should be rare, so allocating only in that case should have
>>>>> been cheap. Unfortunately, I can not allocate here.
>>>>> Also, Boolean::TRUE is not necessarily initialized properly.
>>>>> Actually, putting the modeling aside, I only need any legal
>>>>> oop for this field. It is only tested for null later on.
>>>>> So the most simple (and cheap) fix is just reusing
>>>>> one of the oops in the array at hand.
>>>>> So please review this fix.
>>>>> http://cr.openjdk.java.net/~goetz/wr19/8232921-fix_hidden_frames/01/
>>>>> I'll run it through our testing tonight.
>>>>> Best regards,
>>>>>      Goetz.

More information about the hotspot-runtime-dev mailing list