GC threads initialized much earlier than ConcurrentMarkThread::makeSurrogateLockerThread call is done, so with +ScavengeALot GC may happened several times during VM initialization. In some rare cases G1's remark phase may be started before SLT is initialized and crash will happen. I'm able to reproduce such scenario with following VM options on linux-x64: -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:+ScavengeALot -XX:SurvivorAlignmentInBytes=2k -Xmx10m -version
|