RFR: 8373203: Genshen: Non-strong reference leak in old gen [v8]

William Kemper wkemper at openjdk.org
Fri Jan 16 00:50:45 UTC 2026


On Mon, 12 Jan 2026 21:37:32 GMT, Y. Srinivas Ramakrishna <ysr at openjdk.org> wrote:

>  It should find the old referent to be in the old generation and leave it alone?

It cannot though. Once the reference is encountered it must either be _discovered_ (i.e., added to a discovered list for later processing), or it must be marked strongly.

> Is there an example of that from an application/service where we see this?

The [original bug report](https://mail.openjdk.org/pipermail/shenandoah-dev/2025-December/028724.html) referenced an issue with the [Undertow](https://undertow.io/) web server. Not being able to clear these weak references prevents the finalizers from running and resulted in a memory leak. This prevented them from evaluating generational Shenandoah. The change here does add some complexity, but it's not egregious and I feel it does address a real world problem.

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

PR Comment: https://git.openjdk.org/jdk/pull/28810#issuecomment-3757550024


More information about the shenandoah-dev mailing list