RFR (XS): 8024830: SEGV in org.apache.lucene.codecs.compressing.CompressingTermVectorsReader.get
Dawid Weiss
dawid.weiss at gmail.com
Sun Nov 10 08:54:17 PST 2013
I confirm that this patch fixes the problem encountered in
LUCENE-5212. I've tested svn rev. 1523179 (trunk) against jdk8-b114
with and without Vladimir's patch. Without the patch the test sequence
ends about 50% of the time in a sigsegv. With the patch all executions
ended without any errors.
I have no idea how you tracked this down, Vladimir, but I
enthusiastically share your "Huraaa!" [1] :)
Dawid
[1] https://bugs.openjdk.java.net/browse/JDK-8024830?focusedCommentId=13426080#comment-13426080
On Sun, Nov 10, 2013 at 2:05 AM, Vladimir Kozlov
<vladimir.kozlov at oracle.com> wrote:
> 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