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