On Tue, 14 Jul 2026 07:24:36 GMT, Serguei Spitsyn <[email protected]> wrote:

>> This update fixes the test bug which was initially filed as a Valhalla bug 
>> but then found to be NOT Valhalla specific.
>> The static variable `objectCount` is used for two different purposes:
>>  - to count current walked objects number
>>  - as a number to tag objects
>> 
>> This leads to mismatches in indexes calculations.
>> For instance the `ObjectFree` event callback decrements the `objectCount` 
>> number. Then the `objectCountMax` can be smaller than some of the actual 
>> indexes.
>> The fix does:
>>  - adds a fragment to force GC's with the JVMTI `ForceGarbageCollection` to 
>> make the failure well reproducible
>>  - split `objectCount` into: `objectCount` and `objectTagCount`
>>  - `objectTagCount` is used to set the object tags and value of the 
>> `objectCountMax`
>>  - a couple of the `ind` boundary checks are also corrected
>> 
>> Testing:
>>  - Executed the test locally: 
>> `jvmti/IterateOverReachableObjects/iterreachobj002`
>>  - TBD: Submit mach5 tiers 1-3 to be safe
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> Serguei Spitsyn has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   review: removed objectCount var, ObjectFree event callback and related 
> capability

It looks like objectCountMax could be replaced with objectTagCount since once 
objectCountMax is set objectTagCount doesn't change. Is that correct? I'm not 
saying it should be replaced. Assigning to objectCountMax probably makes the 
code easier to read, but I just want to make sure I'm understanding it 
correctly. However, an assert that they are still equal after the 2nd 
IterateOverReachableObjects call might be a good idea.

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

PR Comment: https://git.openjdk.org/jdk/pull/31585#issuecomment-4993548134

Reply via email to