RFR: 8280029: G1: "Overflow during reference processing, can not continue" on x86_32
Aleksey Shipilev
shade at openjdk.java.net
Mon Jan 17 16:47:22 UTC 2022
On Mon, 17 Jan 2022 12:24:05 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
> This should fix the intermittent G1 x86_32 failure in GHA. See more investigation in the bug. I think at this point we are better off bumping the default mark stack size for 32-bit builds. Also fix the error message to be less misleading.
>
> Additional testing:
> - [x] Affected test on Linux fastdebug x86_32, 100 repeats; used to fail at about 10th iteration, does not fail anymore;
> - [x] Linux x86_32 fastdebug `tier1`
> - [x] Linux x86_32 fastdebug `tier2`
> - [x] Linux x86_32 fastdebug `tier3`
Yeah, I was looking through that code and decided that "resizing" the mark stack is only doable through concurrent mark abort, resize and restart. This overflow happens at Remark pause, which is too late. The "overflowed" bit records failed push to mark stack, so marking looks already borked. Bailout seems to be the only simple recourse. For current failures, this is avoidable if we "just" start with a bit larger mark stack on 32-bit platforms.
-------------
PR: https://git.openjdk.java.net/jdk/pull/7109
More information about the hotspot-gc-dev
mailing list