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