[ https://issues.apache.org/jira/browse/LOG4J2-2592?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gary Gregory resolved LOG4J2-2592. ---------------------------------- Resolution: Fixed Assignee: Gary Gregory Fix Version/s: 2.12.0 Fixed in git {{master}} and {{release-2.x}} branches. > StackOverflowException when server not reachable with SocketAppender > -------------------------------------------------------------------- > > Key: LOG4J2-2592 > URL: https://issues.apache.org/jira/browse/LOG4J2-2592 > Project: Log4j 2 > Issue Type: Bug > Components: Appenders > Affects Versions: 2.11.0, 2.11.2 > Reporter: Dávid Kaya > Assignee: Gary Gregory > Priority: Critical > Fix For: 2.12.0 > > > SocketAppender crashes log4j with {{StackOverflowException}} when the server > where the log file should be sent is not accessible. It looks like > {{toString()}} contains recursion. > This also happens in 2.11.2 (even though log shows 2.11.0). > This does not happen in 2.8.2 ( {{toString()}} methods were not there in that > version) > > {code:java} > java.lang.StackOverflowError: null > at java.lang.Integer.toUnsignedString0(Integer.java:344) ~[?:?] > at java.lang.Integer.toHexString(Integer.java:262) ~[?:?] > at java.lang.Object.toString(Object.java:246) ~[?:?] > at java.util.concurrent.CountDownLatch.toString(CountDownLatch.java:314) > ~[?:?] > at java.lang.String.valueOf(String.java:2951) ~[?:?] > at java.lang.StringBuilder.append(StringBuilder.java:168) ~[?:?] > at > org.apache.logging.log4j.core.net.TcpSocketManager$Reconnector.toString(TcpSocketManager.java:358) > ~[log4j-core-2.11.0.jar:2.11.0] > at java.lang.String.valueOf(String.java:2951) ~[?:?] > at java.lang.StringBuilder.append(StringBuilder.java:168) ~[?:?] > at > org.apache.logging.log4j.core.net.TcpSocketManager.toString(TcpSocketManager.java:495) > ~[log4j-core-2.11.0.jar:2.11.0] > at java.lang.String.valueOf(String.java:2951) ~[?:?] > at java.lang.StringBuilder.append(StringBuilder.java:168) ~[?:?] > at > org.apache.logging.log4j.core.net.TcpSocketManager$Reconnector.toString(TcpSocketManager.java:358) > ~[log4j-core-2.11.0.jar:2.11.0] > at java.lang.String.valueOf(String.java:2951) ~[?:?] > at java.lang.StringBuilder.append(StringBuilder.java:168) ~[?:?] > at > org.apache.logging.log4j.core.net.TcpSocketManager.toString(TcpSocketManager.java:495) > ~[log4j-core-2.11.0.jar:2.11.0] > at java.lang.String.valueOf(String.java:2951) ~[?:?] > at java.lang.StringBuilder.append(StringBuilder.java:168) ~[?:?] > at > org.apache.logging.log4j.core.net.TcpSocketManager$Reconnector.toString(TcpSocketManager.java:358) > ~[log4j-core-2.11.0.jar:2.11.0] > at java.lang.String.valueOf(String.java:2951) ~[?:?] > at java.lang.StringBuilder.append(StringBuilder.java:168) ~[?:?] > at > org.apache.logging.log4j.core.net.TcpSocketManager.toString(TcpSocketManager.java:495) > ~[log4j-core-2.11.0.jar:2.11.0] > at java.lang.String.valueOf(String.java:2951) ~[?:?] > at java.lang.StringBuilder.append(StringBuilder.java:168) ~[?:?] > at > org.apache.logging.log4j.core.net.TcpSocketManager$Reconnector.toString(TcpSocketManager.java:358) > ~[log4j-core-2.11.0.jar:2.11.0] > at java.lang.String.valueOf(String.java:2951) ~[?:?] > at java.lang.StringBuilder.append(StringBuilder.java:168) ~[?:?] > at > org.apache.logging.log4j.core.net.TcpSocketManager.toString(TcpSocketManager.java:495) > ~[log4j-core-2.11.0.jar:2.11.0] > at java.lang.String.valueOf(String.java:2951) ~[?:?] > at java.lang.StringBuilder.append(StringBuilder.java:168) ~[?:?] > at > org.apache.logging.log4j.core.net.TcpSocketManager$Reconnector.toString(TcpSocketManager.java:358) > ~[log4j-core-2.11.0.jar:2.11.0] > at java.lang.String.valueOf(String.java:2951) ~[?:?] > at java.lang.StringBuilder.append(StringBuilder.java:168) ~[?:?] > at > org.apache.logging.log4j.core.net.TcpSocketManager.toString(TcpSocketManager.java:495) > ~[log4j-core-2.11.0.jar:2.11.0] > at java.lang.String.valueOf(String.java:2951) ~[?:?] > at java.lang.StringBuilder.append(StringBuilder.java:168) ~[?:?] > at > org.apache.logging.log4j.core.net.TcpSocketManager$Reconnector.toString(TcpSocketManager.java:358) > ~[log4j-core-2.11.0.jar:2.11.0] > at java.lang.String.valueOf(String.java:2951) ~[?:?] > at java.lang.StringBuilder.append(StringBuilder.java:168) ~[?:?] > at > org.apache.logging.log4j.core.net.TcpSocketManager.toString(TcpSocketManager.java:495) > ~[log4j-core-2.11.0.jar:2.11.0] > at java.lang.String.valueOf(String.java:2951) ~[?:?] > at java.lang.StringBuilder.append(StringBuilder.java:168) ~[?:?] > at > org.apache.logging.log4j.core.net.TcpSocketManager$Reconnector.toString(TcpSocketManager.java:358) > ~[log4j-core-2.11.0.jar:2.11.0] > at java.lang.String.valueOf(String.java:2951) ~[?:?] > at java.lang.StringBuilder.append(StringBuilder.java:168) ~[?:?] > at > org.apache.logging.log4j.core.net.TcpSocketManager.toString(TcpSocketManager.java:495) > ~[log4j-core-2.11.0.jar:2.11.0] > at java.lang.String.valueOf(String.java:2951) ~[?:?] > at java.lang.StringBuilder.append(StringBuilder.java:168) ~[?:?] > at > org.apache.logging.log4j.core.net.TcpSocketManager$Reconnector.toString(TcpSocketManager.java:358) > ~[log4j-core-2.11.0.jar:2.11.0] > at java.lang.String.valueOf(String.java:2951) ~[?:?] > at java.lang.StringBuilder.append(StringBuilder.java:168) ~[?:?] > at > org.apache.logging.log4j.core.net.TcpSocketManager.toString(TcpSocketManager.java:495) > ~[log4j-core-2.11.0.jar:2.11.0] > at java.lang.String.valueOf(String.java:2951) ~[?:?] > at java.lang.StringBuilder.append(StringBuilder.java:168) ~[?:?] > at > ... > 1000s of same messages repeated in between > ... > org.apache.logging.log4j.core.net.TcpSocketManager$Reconnector.toString(TcpSocketManager.java:358) > ~[log4j-core-2.11.0.jar:2.11.0] > at java.lang.String.valueOf(String.java:2951) ~[?:?] > at java.lang.StringBuilder.append(StringBuilder.java:168) ~[?:?] > at > org.apache.logging.log4j.core.net.TcpSocketManager.toString(TcpSocketManager.java:495) > ~[log4j-core-2.11.0.jar:2.11.0] > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)