Re: RFR: 8377712: ConstantPool of WeakReferenceKey is not deterministic in CDS archive
On Thu, 12 Feb 2026 05:58:15 GMT, Chen Liang <liach@openjdk.org> wrote:
We are seeing intermittent failures (12 times in Jan 2026) where the CDS archives generated in the JDK build is not deterministic.
The symptom is that (perhaps due to the peculiarity of hash codes and memory addressing??) the constant pool entry for `ReferenceKey<?>` in the `WeakReferenceKey` class is not resolved when the failure happens. Probably it's due to a particular layout in the hashtable such that we have no collisions so the `WeakReferenceKey::equals()` method is never called.
The fix is for the JVM to call a method in `WeakReferenceKey` to force this entry to be resolved.
Or a better fix would be removing the == path for all reference keys. There's no case where this hits because you are always creating a new strong key. Missing use of class constant means the equals method is completely unused.
Thank you @liach @vnkozlov for the review ------------- PR Comment: https://git.openjdk.org/jdk/pull/29678#issuecomment-3924758708
participants (1)
-
Ioi Lam