The call to os::reserve_memory_special in ReservedSpace::initialize is ignoring the 'alignment' parameter. Because of this we get an unaligned address back, which results in various crashes.
Repro:
Setup shm large pages according to os_linux.cpp, and run:
sudo java -XX:+UseG1GC -XX:G1HeapRegionSize=16M -Xmx64m -XX:-UseCompressedOops -XX:+UseLargePages
-XX:+UseSHM -XX:+PrintGC SystemGC
ILW: High, Low, Medium => P3, until further evaluated.
Repro:
Setup shm large pages according to os_linux.cpp, and run:
sudo java -XX:+UseG1GC -XX:G1HeapRegionSize=16M -Xmx64m -XX:-UseCompressedOops -XX:+UseLargePages
-XX:+UseSHM -XX:+PrintGC SystemGC
ILW: High, Low, Medium => P3, until further evaluated.
- duplicates
-
JDK-8007074 SIGSEGV at ParMarkBitMap::verify_clear()
- Closed
- relates to
-
JDK-8017629 G1: UseSHM in combination with a G1HeapRegionSize > os::large_page_size() falls back to use small pages
- Resolved