On Sat, 25 Apr 2026 04:26:01 GMT, SendaoYan <[email protected]> wrote:

>> Hi all,
>> 
>> Test com/sun/jdi/FinalizerTest.java intermittent fails. This is because 
>> arraylist holdAlot do not clear or set as null before recliam heap memory by 
>> invoke System.gc. This PR add arraylist.clear() before call System.gc() to 
>> avoid OOME in the senond System.runFinalization().
>> 
>> The first System.runFinalization() has a synchronize bug. 
>> System.runFinalization() run in another low priority Finalizer thread. In 
>> the main thread maybe read variable finalizerRun before Finalizer thread 
>> change it. So waitForAFinalizer will run into whille(true) allocation loop 
>> sometimes. This PR add a countdownlatch synchronize to make sure main thread 
>> read the finalizerRun value after Finalizer thread write it.
>> 
>> This PR also remove the unused variable and optimize the imports, and add 
>> -Xmx256M to debuggee jvm process, this will make debuggee throw OOME steady 
>> in large physical memory machine.
>> 
>> Before this PR, test failure probability about 1/30. After this PR test run 
>> 3k times and all passed.
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> SendaoYan has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Add a comment "The Debuggee should not reach here in theory"

Looks good.

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

Marked as reviewed by cjplummer (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/30829#pullrequestreview-4175070005

Reply via email to