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
