RFR: 8298783: java/lang/ref/FinalizerHistogramTest.java failed with "RuntimeException: MyObject is not found in test output" [v7]
Brent Christian
bchristi at openjdk.org
Wed Apr 30 20:27:31 UTC 2025
On Tue, 29 Apr 2025 23:16:05 GMT, Kim Barrett <kbarrett at openjdk.org> wrote:
>> Brent Christian has updated the pull request incrementally with one additional commit since the last revision:
>>
>> convert test to use WhiteBox
>
> test/jdk/java/lang/ref/FinalizerHistogramTest.java line 77:
>
>> 75: wb = WhiteBox.getWhiteBox();
>> 76: wb.fullGC();
>> 77: refProResult = wb.waitForReferenceProcessing();
>
> WhiteBox::waitForReferenceProcessing returns true if some progress has been made, not if all the
> processing is done. Probably need a loop here, e.g.
>
> while (wb.waitForReferenceProcessing()) {}
> // All finalizable objects from prior gcs have made it to the finalizer queue.
I've only ever seen it return `false`. But that won't necessarily always be true; I've added a loop.
> test/jdk/java/lang/ref/FinalizerHistogramTest.java line 79:
>
>> 77: refProResult = wb.waitForReferenceProcessing();
>> 78: System.out.println("waitForReferenceProcessing returned: " + refProResult);
>> 79: while(trappedCount.get() < 1);
>
> This doesn't seem to be doing anything? trappedCount is initially 0, and only incremented.
It spins until at least one `MyObject` has entered `finalize()` before proceeding to fetch the histogram.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/24143#discussion_r2069386677
PR Review Comment: https://git.openjdk.org/jdk/pull/24143#discussion_r2069389317
More information about the core-libs-dev
mailing list