[jdk8u] RFR: 8316278 G1: Clean up code in ptrQueue.[ch]pp and ptrQueue.inline.hpp

Sun Jianye jianyesun at openjdk.org
Tue Sep 19 02:26:04 UTC 2023


Hi~,  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 return value of the function byte_index_to_index is the index of the array _buf, and it should be non-negative. So it's 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 found  [JDK-6899049](https://bugs.openjdk.org/browse/JDK-6899049) can sovle it, so please let's do backport it. We also added a test case.
Thanks.

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

Commit messages:
 - Backport-6899049 G1: Clean up code in ptrQueue.[ch]pp and ptrQueue.inline.hpp

Changes: https://git.openjdk.org/jdk8u/pull/50/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk8u&pr=50&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8316278
  Stats: 243 lines in 7 files changed: 133 ins; 42 del; 68 mod
  Patch: https://git.openjdk.org/jdk8u/pull/50.diff
  Fetch: git fetch https://git.openjdk.org/jdk8u.git pull/50/head:pull/50

PR: https://git.openjdk.org/jdk8u/pull/50


More information about the jdk8u-dev mailing list