RFR (XS): 8024830: SEGV in org.apache.lucene.codecs.compressing.CompressingTermVectorsReader.get
Vladimir Kozlov
vladimir.kozlov at oracle.com
Sat Nov 9 11:20:57 PST 2013
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