RFR: 8257228: G1: SIGFPE in G1ConcurrentRefine::create(int*) due to buffers_to_cards overflow [v4]

Kim Barrett kbarrett at openjdk.java.net
Wed Dec 2 03:36:00 UTC 2020


On Mon, 30 Nov 2020 10:23:09 GMT, Jie Fu <jiefu at openjdk.org> wrote:

>> Hi all,
>> 
>> SIGFPE was observed by running:
>> java -XX:G1ConcRefinementThresholdStep=16G -XX:G1UpdateBufferSize=1G -version
>> 
>> The reason is that buffers_to_cards [1] returns 0 for 'step' due to overflow.
>> It would be better to add overflow check logic is it.
>> 
>> Testing:
>>   - tier1 on Linux/x64
>> 
>> Thanks.
>> Best regards,
>> Jie
>> 
>> [1] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/gc/g1/g1ConcurrentRefine.cpp#L235
>
> Jie Fu has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Only run the test on 64-bit machines

Changes requested by kbarrett (Reviewer).

src/hotspot/share/gc/g1/g1ConcurrentRefine.cpp line 255:

> 253: static size_t calc_init_green_zone() {
> 254:   size_t green = G1ConcRefinementGreenZone;
> 255:   char* name = (char*) "G1ConcRefinementGreenZone";

Change the type of name to `const char*` and eliminate the cast here and on line 258.

-------------

PR: https://git.openjdk.java.net/jdk/pull/1489



More information about the hotspot-gc-dev mailing list