RFR: 8138966: Intermittent SEGV running ParallelGC
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::calc_new_pointer() :
>
> if (!region_ptr->blocks_filled()) {
> PSParallelCompact::fill_blocks(addr_to_region_idx(addr));
> region_ptr->set_blocks_filled();
> }
>
> Neither blocks_filled() nor set_blocks_filled() 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-gc-dev
mailing list