[ 
https://issues.apache.org/jira/browse/LOG4J2-2829?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17405644#comment-17405644
 ] 

Mihail commented on LOG4J2-2829:
--------------------------------

Yes, I created a custom appender from a copy of TcpSocketManager + 
SocketAppender and made one change inside TcpSocketManager.write
that throws AppenderLoggingException unconditionally on IOException
 throw new AppenderLoggingException(
 String.format("Error writing to %s connection for %s", getName(), config), 
causeEx);

after this if block:
https://github.com/apache/logging-log4j2/blob/rel/2.12.1/log4j-core/src/main/java/org/apache/logging/log4j/core/net/TcpSocketManager.java#L242

> 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
>            Priority: Major
>
> 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