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