RFR: 8287104: AddressChangeListener thread inherits CCL and can cause memory leak for webapp-servers

Aleksei Efimov aefimov at openjdk.java.net
Mon May 23 12:21:40 UTC 2022


On Sun, 22 May 2022 08:20:21 GMT, Jaikiran Pai <jpai at openjdk.org> wrote:

> Can I please get a review of this change which addresses https://bugs.openjdk.java.net/browse/JDK-8287104?
> 
> The change in this commit now uses an `InnocuousThread` to create a thread with `null` context classloader. The `Runnable` task of this thread just invokes a native method through JNI to be notified of IP addresses change of the host. As such any specific thread context classloader isn't necessary in this thread.
> 
> Additionally, this commit does some minor changes like making the `lock` member variable `final` and also marking the `changed` member variable as `volatile`. These changes aren't necessary for this fix, but I think would be good to have while we are changing this part of the code.
> 
> Finally, the thread that we create here, now has a specific name `Net-address-change-listener` instead of the usual system wide auto-generated name.
> 
> No new tests have been added for this change. Existing tier1, tier2 and tier3 tests have been run and no related failures have been noticed.

Hi @jaikiran,

Thanks for the fix. Chages look good to me with one suggestion:
Could we reflect in a thread name the fact that it is JNDI/DNS specific one? Right now it is not clear - one might think that it could be related to `InetAddress`/`NetworkInterface` or other networking classes.
Maybe something like `Jndi-Dns-address-change-listener`?

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

Marked as reviewed by aefimov (Committer).

PR: https://git.openjdk.java.net/jdk/pull/8827


More information about the net-dev mailing list