RFR (XS): 8024830: SEGV in org.apache.lucene.codecs.compressing.CompressingTermVectorsReader.get

Vladimir Kozlov vladimir.kozlov at oracle.com
Sat Nov 9 17:05:37 PST 2013


Thank you, Igor

I will fix the comment.

Vladimir

On 11/9/13 4:33 PM, Igor Veresov wrote:
> Woot! Looks good.
>
> A typo:
>
> 510     // RA guarantee such alignment ...
>
> igor
>
> On Nov 9, 2013, at 11:20 AM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
>
>> http://cr.openjdk.java.net/~kvn/8024830/webrev/
>>
>> https://bugs.openjdk.java.net/browse/JDK-8024830
>>
>> C2 Register Allocator can use input argument's stack slots for spills but until RA we don't know what offset and alignment these slots have. The minimum provided alignment is 8 bytes (for Double and long values). For wide vectors it is not enough. When vector is spilled there (as in this bug) it may stomp over values on caller's stack which follow argument's slots.
>>
>> Exclude enough (vector's size - 1) last input argument's stack slots from vector's spilling masks to avoid it.
>>
>> The fix is the same for jdk7u and jdk8.
>>
>> Tested lucene tests, JPRT, jtreg, ctw.
>>
>> Thanks,
>> Vladimir
>>
>>
>>
>


More information about the hotspot-compiler-dev mailing list