On Wed, 30 Apr 2025 08:47:59 GMT, Axel Boldt-Christmas <abold...@openjdk.org> 
wrote:

>> Ioi Lam has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   Renamed the internal field ReferenceQueue.NULL to NULL_QUEUE to avoid 
>> failing hotspot/jtreg/sources/TestNoNULL.java
>
> src/hotspot/share/cds/aotArtifactFinder.cpp line 77:
> 
>> 75:   // into the AOT cache -- that will be decided by the code below.
>> 76:   SystemDictionaryShared::finish_exclusion_checks();
>> 77:   AOTReferenceObjSupport::init_keep_alive_objs_table();
> 
> This should be guarded with `INCLUDE_CDS_JAVA_HEAP` somehow. I guess the 
> cleanest way would be to use `NOT_CDS_JAVA_HEAP_RETURN` in 
> `aotReferenceObjSupport.hpp`

I added `NOT_CDS_JAVA_HEAP_RETURN` to the declaration of 
`init_keep_alive_objs_table`. All the other functions are called only inside 
`INCLUDE_CDS_JAVA_HEAP` blocks, so I didn't change them to avoid cluttering the 
code.

> src/hotspot/share/cds/aotReferenceObjSupport.cpp line 95:
> 
>> 93: #if INCLUDE_CDS_JAVA_HEAP
>> 94: 
>> 95: 
> 
> Suggestion:

Fixed.

> test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/WeakReferenceTest.java 
> line 233:
> 
>> 231:         if (ref2.get() == null) {
>> 232:             throw new RuntimeException("ref2.get() should not be null");
>> 233:         }
> 
> The referent of ref2 is never strong. If a GC occurs between makeRef2() and 
> this check, we could hit this Exception. The test should either keep it 
> strongly reachable until after this check or just not test wether it is 
> reachable before the call to System.gc().

I removed the check that was before the GC.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/24757#discussion_r2069169854
PR Review Comment: https://git.openjdk.org/jdk/pull/24757#discussion_r2069169794
PR Review Comment: https://git.openjdk.org/jdk/pull/24757#discussion_r2069169743

Reply via email to