RFR: 8138966: Intermittent SEGV running ParallelGC (original) (raw)

Thomas Schatzl thomas.schatzl at oracle.com
Fri Oct 30 12:37:47 UTC 2015


Hi Andrew,

On Thu, 2015-10-29 at 18:12 +0000, Andrew Haley wrote:

We have observed intermittent crashes when running with -XX:+UseParallelGC on a many-core AArch64 system. These appear as apparently random segfaults.

I've tracked it down to a race between threads when updating the block table in ParallelCompactData::calcnewpointer() : if (!regionptr->blocksfilled()) { PSParallelCompact::fillblocks(addrtoregionidx(addr)); regionptr->setblocksfilled(); } Neither blocksfilled() nor setblocksfilled() have any memory fences so it is possible for a thread to observe a partially-filled block table. http://cr.openjdk.java.net/~aph/8138966/ This is shared code so I'll need someone to push this for me.

thanks for catching this. Looks good. It is unfortunate that we do not have load_acquire/release_store methods for bools.

I can sponsor it.

Thanks, Thomas



More information about the hotspot-dev mailing list