Integrated: 8308235: ThreadContainer registry accumulates weak refs
Alan Bateman
alanb at openjdk.org
Tue May 23 07:08:03 UTC 2023
On Thu, 18 May 2023 15:44:15 GMT, Alan Bateman <alanb at 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 <alanb at 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
More information about the core-libs-dev
mailing list