[jdk8u-dev] RFR: 6899049: G1: Clean up code in ptrQueue.[ch]pp and ptrQueue.inline.hpp [v2]
Sun Jianye
jianyesun at openjdk.org
Tue Sep 19 17:24:20 UTC 2023
> Hi all,
>
> This pull request contains a backport of commit [b256989eb34a32c8f03be448c0645baeb5192a01](https://github.com/openjdk/jdk11u-dev/commit/b256989eb34a32c8f03be448c0645baeb5192a01) from the [openjdk/jdk11u-dev](https://github.com/openjdk/jdk11u-dev) repository.
>
> As reported by issue : https://bugs.openjdk.org/browse/JDK-8316278 . We found the indexing method of PtrQueue's buf is not correct when converting an integer of type size_t to type int, then calling the method PtrQueue::byte_index_to_index .
> The key problem is this way of using:
>
> size_t i=0; _buf[byte_index_to_index((int)i)] = NULL;
>
> The variable i of size_t type cannot be converted directly to an int type . Other than that, the return value of the function byte_index_to_index is the index of the array _buf, and it should be non-negative. So it should be a type of size_t.
> Currently we have found 2 issues related to this problem, https://bugs.openjdk.org/browse/JDK-8308169 and https://bugs.openjdk.org/browse/JDK-8303961. They are all triggered by a special size number of buf, like '-XX:G1UpdateBufferSize=512M' or '-XX:G1SATBBufferSize=500m'
> We also added a test case.
> Please review this PR. Thanks.
Sun Jianye has refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR. The pull request contains one new commit since the last revision:
8316278: Fix the indexing method of PtrQueue's buf when a large integer value overflow
-------------
Changes:
- all: https://git.openjdk.org/jdk8u-dev/pull/374/files
- new: https://git.openjdk.org/jdk8u-dev/pull/374/files/5f71f84e..584e5ee1
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk8u-dev&pr=374&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk8u-dev&pr=374&range=00-01
Stats: 2 lines in 1 file changed: 0 ins; 0 del; 2 mod
Patch: https://git.openjdk.org/jdk8u-dev/pull/374.diff
Fetch: git fetch https://git.openjdk.org/jdk8u-dev.git pull/374/head:pull/374
PR: https://git.openjdk.org/jdk8u-dev/pull/374
More information about the jdk8u-dev
mailing list