On Thu, 18 May 2023 15:44:15 GMT, Alan Bateman <al...@openjdk.org> wrote:
> ThreadContainers is an internal class used to make thread pools and other > groupings of threads discoverable for observability. Some refactoring in 2021 > (in the loom repo, and before integration) accidentally changed the creation > of a weak reference so that it no longer associated with the reference queue. > The result is that stale refs aren't expunged from a CHM, leading to a memory > leak. The change to fix the issue is trivial. > > Tests for memory leaks can be problematic, often more trouble than they are > worth. I started with a test that polls the size of the internal CHM but > decided to ditch it. Instead, the test is simple. It just runs for a few > seconds creating ExecuorService implementations (including TPE, TPPE, and > FJP), unreferencing them without shutdown (so they don't terminate and > unregister). This is enough to causes OOME with product builds a small heap. This pull request has now been integrated. Changeset: ada416e6 Author: Alan Bateman <al...@openjdk.org> URL: https://git.openjdk.org/jdk/commit/ada416e66cbff6c8e631bf352acc0744c248740b Stats: 52 lines in 2 files changed: 50 ins; 0 del; 2 mod 8308235: ThreadContainer registry accumulates weak refs Reviewed-by: jpai ------------- PR: https://git.openjdk.org/jdk/pull/14047