Mihail created LOG4J2-2829:
------------------------------

             Summary: TcpSocketManager.write swallows IOException when retry = 
false or reconnector != null
                 Key: LOG4J2-2829
                 URL: https://issues.apache.org/jira/browse/LOG4J2-2829
             Project: Log4j 2
          Issue Type: Bug
          Components: Appenders
    Affects Versions: 2.12.1
            Reporter: Mihail


Hi, I see very stange behavior when using tcp SocketAppender. My configuration 
is:

<Socket name="auditSocket" protocol="TCP" host="10.8.84.194" port="4587" 
connectTimeoutMillis="10000" reconnectionDelayMillis="10000"
 immediateFail="true" immediateFlush="true" ignoreExceptions="false" 
bufferedIO="false">

After application starts and before writing any logs I simulate connection 
reset with:

iptables -A OUTPUT -p tcp -d 10.8.84.194 --dport 4587 -j REJECT --reject-with 
tcp-reset

Now the strange part:
 # First log is written to output stream successfully (but nothing actually 
gets sent)
 # Second log throws IOException on outputstream write, this gets handled with 
a reconnection attempt (which fails) and result is AppenderLoggingException - 
this is what I expect because I'm using a failover appender to route the log 
into file.
 # Third and subsequent log attempts also fail due to IOException on 
outputstream write BUT no AppenderLoggingException is raised - reconnector is 
not null at this point and IOException gets swallowed up.

 

I'm using log4j2 2.12.1

 

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to