RFR: 8367317: ZGC: ZVirtualMemoryReserver::force_reserve_discontiguous arithmetic underflow [v5]

Axel Boldt-Christmas aboldtch at openjdk.org
Mon Nov 10 05:57:13 UTC 2025


On Fri, 24 Oct 2025 06:49:39 GMT, Axel Boldt-Christmas <aboldtch at openjdk.org> wrote:

>> ZVirtualMemoryReserver::force_reserve_discontiguous is a debug only API used to simulate and test a discontinuous heap. The loop variable `end` is incorrectly checked which may lead to an underflow.
>> 
>> In our normal testing we never observe this as the address space is always available. We observed this issue when running a hardened build (like ASAN) which had already mmapped the address space we tried to reserve.
>> 
>> Rather than always jump two reserve sizes in its search, it searches every reserve size, moving an extra reserve size every time it succeeds with a reservation (so that there always is a gap).  Searching in reserve sized steps is not really a requirement here, we could have just used a granule sized step.
>
> Axel Boldt-Christmas 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 five additional commits since the last revision:
> 
>  - Merge tag 'jdk-26+21' into JDK-8367317
>    
>    Added tag jdk-26+21 for changeset 3e20a939
>  - Merge tag 'jdk-26+19' into JDK-8367317
>    
>    Added tag jdk-26+19 for changeset b37a1a33
>  - Merge tag 'jdk-26+18' into JDK-8367317
>    
>    Added tag jdk-26+18 for changeset 5251405c
>  - Merge tag 'jdk-26+17' into JDK-8367317
>    
>    Added tag jdk-26+17 for changeset 2aafda19
>  - 8367317: ZGC: ZVirtualMemoryReserver::force_reserve_discontiguous arithmetic underflow

Thanks for the reviews

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

PR Comment: https://git.openjdk.org/jdk/pull/27207#issuecomment-3509534916


More information about the hotspot-gc-dev mailing list