RFR: 8257228: G1: SIGFPE in G1ConcurrentRefine::create(int*) due to buffers_to_cards overflow [v2]
jiefu at openjdk.java.net
Mon Nov 30 07:05:56 UTC 2020
On Sun, 29 Nov 2020 07:59:31 GMT, Kim Barrett <kbarrett at openjdk.org> wrote:
>> Jie Fu has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision:
>> - Merge branch 'master' into JDK-8257228
>> - Refine the erro msg
>> - Fix mul-overflow-check and error reporting
>> - 8257228: G1: SIGFPE in G1ConcurrentRefine::create(int*) due to buffers_to_cards overflow
> This is only a problem when using values for some command line options that
> are far out of the "normal" range. That's just a general problem; we have
> far too many options, and some of them interact in interesting ways, so that
> it's pretty much impossible to fully test or check for problem cases. And we
> don't want to set artificially low limit values for individual options
> because it's hard to know what some application might find useful. In this
> case, it does look like we can reasonably do more checking though.
Hi @kimbarrett ,
Thanks for your review and comments.
The mul-overflow checking had been fixed.
The error msg had been refined.
For the sake of maintenance, I didn't use constraint function.
There are quite a few flags involved in it such as:
Maybe, you can add the constraint function for each of them this time.
But, when a new flag is used in the future, the constraint function may be missed.
Also, it seems a little strange to add this kind of constraints to flags like ParallelGCThreads.
So I prefer to fixing it in buffers_to_cards.
What do you think?
More information about the hotspot-gc-dev