RFR: 8138966: Intermittent SEGV running ParallelGC (original) (raw)
Thomas Schatzl thomas.schatzl at oracle.com
Fri Oct 30 12:37:47 UTC 2015
- Previous message: RFR: 8138966: Intermittent SEGV running ParallelGC
- Next message: RFR (M) 8140802 - Clean up and refactor of class loading code for CDS
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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
- Previous message: RFR: 8138966: Intermittent SEGV running ParallelGC
- Next message: RFR (M) 8140802 - Clean up and refactor of class loading code for CDS
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]