この記事では、アプリケーションサーバをシャットダウンする際にコンソールログに表示される ThreadLocal リークが存在する可能性のある既知の問題について説明します。
org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks
The web application [ROOT] created a ThreadLocal with key of type
[java.lang.ThreadLocal] (value [java.lang.ThreadLocal@ccb08cb]) and a value
of type [io.netty.util.internal.InternalThreadLocalMap] (value
[io.netty.util.internal.InternalThreadLocalMap@21c8be8a]) but failed to
remove it when the web application was stopped. Threads are going to be
renewed over time to try and avoid a probable memory leak.
決議
ステータス直らない
Liferayサポートエンジニアは、リークの原因がサードパーティベンダーである Nettyにあると判断しました。 Netty の には、スレッドローカルのリークをクリーンアップしようとする の util メソッドがありますが、このメソッドを起動した後もエラーメッセージが表示されます。 このエラーは、Elasticsearch内部の依存関係を含むNettyの実装に非常によく見られるものであることが判明し、Elasticsearchを含むほとんどのベンダーはこのエラーを無視します。 その結果、Liferayサポート・エンジニアは、Liferayプラットフォームとお客様への影響は最小限であると判断しました。
追加情報
詳細については、 LPS-83704を参照してください。