Adrien Grand created LOG4J2-1858:
------------------------------------

             Summary: Memory issues with ParameterizedMessage
                 Key: LOG4J2-1858
                 URL: https://issues.apache.org/jira/browse/LOG4J2-1858
             Project: Log4j 2
          Issue Type: Bug
            Reporter: Adrien Grand


ParameterizedMessage keeps track of a ThreadLocal<StringBuilder> in order to 
save object creations. However, the reused string builders can only grow over 
time, which may end up causing memory issues after some large messages have 
been logged. This is especially true if the application uses a fixed thread 
pool since the string builders cannot be collected at all.

One way to address that issue would be to drop the string builder if it grows 
too large, but I have concerns that this could cause garbage collection issues 
if this happens too often (since those string builders might not die young). So 
maybe this class should go back to create the StringBuilder on demand and make 
sure it always dies young?

For the record, this problem seems to have been introduced in LOG4J2-1271 / 
https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=blobdiff;f=log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessage.java;h=d315c1345b5fb72c8d88f5e1aa177011c7376fb9;hp=334e19ba7c188e8ac862863830cf17dca7b7007c;hb=dca586c;hpb=047565e8928b0c9893c25ee92ffdf48dbcd6965c.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org

Reply via email to