offbynull created LOG4J2-196:
--------------------------------

             Summary: log4j2 blocks on logging calls if the FlumeAppender loses 
its connection to the remote flume agent
                 Key: LOG4J2-196
                 URL: https://issues.apache.org/jira/browse/LOG4J2-196
             Project: Log4j 2
          Issue Type: Bug
          Components: Flume Appender
    Affects Versions: 2.0-beta5
            Reporter: offbynull
         Attachments: zzzzzzzzzzzzzzzzzTest.tar.gz

Steps to reproduce (use attachmented Maven project):

1. Start your remote flume agent
2. Run the Maven project
3. Kill your remote flume agent
4. Press enter

Notice how the call to log something blocks for at least 2 seconds. Sample 
output below:


{quote}
sent initial error message.
kill your flume agent now and enter any key to log another message.


---
sending msg

ERROR StatusLogger Unable to create transceiver java.io.IOException: Error 
connecting to /127.0.0.1:36892
        at 
org.apache.avro.ipc.NettyTransceiver.getChannel(NettyTransceiver.java:261)
        at 
org.apache.avro.ipc.NettyTransceiver.<init>(NettyTransceiver.java:203)
        at 
org.apache.avro.ipc.NettyTransceiver.<init>(NettyTransceiver.java:152)
        at 
org.apache.avro.ipc.NettyTransceiver.<init>(NettyTransceiver.java:120)
        at 
org.apache.avro.ipc.NettyTransceiver.<init>(NettyTransceiver.java:107)
        at 
org.apache.logging.log4j.flume.appender.FlumeAvroManager.connect(FlumeAvroManager.java:301)
        at 
org.apache.logging.log4j.flume.appender.FlumeAvroManager.send(FlumeAvroManager.java:241)
        at 
org.apache.logging.log4j.flume.appender.FlumeAppender.append(FlumeAppender.java:90)
        at 
org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:102)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:402)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:383)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:386)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:344)
        at org.apache.logging.log4j.core.Logger.log(Logger.java:108)
        at 
org.apache.logging.log4j.spi.AbstractLogger.error(AbstractLogger.java:559)
        at com.globalrelay.apps.zzzzzzzzzzzzzzzzztest.App.main(App.java:26)
Caused by: java.net.ConnectException: Connection refused
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at 
sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:692)
        at 
org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.connect(NioClientSocketPipelineSink.java:396)
        at 
org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.processSelectedKeys(NioClientSocketPipelineSink.java:358)
        at 
org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.run(NioClientSocketPipelineSink.java:274)
        at 
org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:722)

ERROR StatusLogger Unable to create transceiver java.io.IOException: Error 
connecting to /127.0.0.1:36892
        at 
org.apache.avro.ipc.NettyTransceiver.getChannel(NettyTransceiver.java:261)
        at 
org.apache.avro.ipc.NettyTransceiver.<init>(NettyTransceiver.java:203)
        at 
org.apache.avro.ipc.NettyTransceiver.<init>(NettyTransceiver.java:152)
        at 
org.apache.avro.ipc.NettyTransceiver.<init>(NettyTransceiver.java:120)
        at 
org.apache.avro.ipc.NettyTransceiver.<init>(NettyTransceiver.java:107)
        at 
org.apache.logging.log4j.flume.appender.FlumeAvroManager.connect(FlumeAvroManager.java:301)
        at 
org.apache.logging.log4j.flume.appender.FlumeAvroManager.send(FlumeAvroManager.java:241)
        at 
org.apache.logging.log4j.flume.appender.FlumeAppender.append(FlumeAppender.java:90)
        at 
org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:102)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:402)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:383)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:386)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:344)
        at org.apache.logging.log4j.core.Logger.log(Logger.java:108)
        at 
org.apache.logging.log4j.spi.AbstractLogger.error(AbstractLogger.java:559)
        at com.globalrelay.apps.zzzzzzzzzzzzzzzzztest.App.main(App.java:26)
Caused by: java.net.ConnectException: Connection refused
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at 
sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:692)
        at 
org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.connect(NioClientSocketPipelineSink.java:396)
        at 
org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.processSelectedKeys(NioClientSocketPipelineSink.java:358)
        at 
org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.run(NioClientSocketPipelineSink.java:274)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:722)

ERROR StatusLogger Unable to create transceiver java.io.IOException: Error 
connecting to /127.0.0.1:36892
        at 
org.apache.avro.ipc.NettyTransceiver.getChannel(NettyTransceiver.java:261)
        at 
org.apache.avro.ipc.NettyTransceiver.<init>(NettyTransceiver.java:203)
        at 
org.apache.avro.ipc.NettyTransceiver.<init>(NettyTransceiver.java:152)
        at 
org.apache.avro.ipc.NettyTransceiver.<init>(NettyTransceiver.java:120)
        at 
org.apache.avro.ipc.NettyTransceiver.<init>(NettyTransceiver.java:107)
        at 
org.apache.logging.log4j.flume.appender.FlumeAvroManager.connect(FlumeAvroManager.java:301)
        at 
org.apache.logging.log4j.flume.appender.FlumeAvroManager.send(FlumeAvroManager.java:241)
        at 
org.apache.logging.log4j.flume.appender.FlumeAppender.append(FlumeAppender.java:90)
        at 
org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:102)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:402)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:383)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:386)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:344)
        at org.apache.logging.log4j.core.Logger.log(Logger.java:108)
        at 
org.apache.logging.log4j.spi.AbstractLogger.error(AbstractLogger.java:559)
        at com.globalrelay.apps.zzzzzzzzzzzzzzzzztest.App.main(App.java:26)
Caused by: java.net.ConnectException: Connection refused
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at 
sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:692)
        at 
org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.connect(NioClientSocketPipelineSink.java:396)
        at 
org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.processSelectedKeys(NioClientSocketPipelineSink.java:358)
        at 
org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.run(NioClientSocketPipelineSink.java:274)
        at 
org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:722)

ERROR StatusLogger An exception occurred processing Appender FlumeAvroAppender 
org.apache.logging.log4j.core.appender.AppenderRuntimeException: Unable to 
write to FlumeAvro[127.0.0.1:36892,127.0.0.1:36892] at 127.0.0.1:36892
        at 
org.apache.logging.log4j.flume.appender.FlumeAvroManager.send(FlumeAvroManager.java:267)
        at 
org.apache.logging.log4j.flume.appender.FlumeAppender.append(FlumeAppender.java:90)
        at 
org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:102)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:402)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:383)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:386)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:344)
        at org.apache.logging.log4j.core.Logger.log(Logger.java:108)
        at 
org.apache.logging.log4j.spi.AbstractLogger.error(AbstractLogger.java:559)
        at com.globalrelay.apps.zzzzzzzzzzzzzzzzztest.App.main(App.java:26)


log message took2079

---
sending msg
ERROR StatusLogger Unable to create transceiver java.io.IOException: Error 
connecting to /127.0.0.1:36892
        at 
org.apache.avro.ipc.NettyTransceiver.getChannel(NettyTransceiver.java:261)
        at 
org.apache.avro.ipc.NettyTransceiver.<init>(NettyTransceiver.java:203)
        at 
org.apache.avro.ipc.NettyTransceiver.<init>(NettyTransceiver.java:152)
        at 
org.apache.avro.ipc.NettyTransceiver.<init>(NettyTransceiver.java:120)
        at 
org.apache.avro.ipc.NettyTransceiver.<init>(NettyTransceiver.java:107)
        at 
org.apache.logging.log4j.flume.appender.FlumeAvroManager.connect(FlumeAvroManager.java:301)
        at 
org.apache.logging.log4j.flume.appender.FlumeAvroManager.send(FlumeAvroManager.java:241)
        at 
org.apache.logging.log4j.flume.appender.FlumeAppender.append(FlumeAppender.java:90)
        at 
org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:102)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:402)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:383)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:386)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:344)
        at org.apache.logging.log4j.core.Logger.log(Logger.java:108)
        at 
org.apache.logging.log4j.spi.AbstractLogger.error(AbstractLogger.java:559)
        at com.globalrelay.apps.zzzzzzzzzzzzzzzzztest.App.main(App.java:26)
Caused by: java.net.ConnectException: Connection refused
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at 
sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:692)
        at 
org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.connect(NioClientSocketPipelineSink.java:396)
        at 
org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.processSelectedKeys(NioClientSocketPipelineSink.java:358)
        at 
org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.run(NioClientSocketPipelineSink.java:274)
        at 
org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:722)

ERROR StatusLogger Unable to create transceiver java.io.IOException: Error 
connecting to /127.0.0.1:36892
        at 
org.apache.avro.ipc.NettyTransceiver.getChannel(NettyTransceiver.java:261)
        at 
org.apache.avro.ipc.NettyTransceiver.<init>(NettyTransceiver.java:203)
        at 
org.apache.avro.ipc.NettyTransceiver.<init>(NettyTransceiver.java:152)
        at 
org.apache.avro.ipc.NettyTransceiver.<init>(NettyTransceiver.java:120)
        at 
org.apache.avro.ipc.NettyTransceiver.<init>(NettyTransceiver.java:107)
        at 
org.apache.logging.log4j.flume.appender.FlumeAvroManager.connect(FlumeAvroManager.java:301)
        at 
org.apache.logging.log4j.flume.appender.FlumeAvroManager.send(FlumeAvroManager.java:241)
        at 
org.apache.logging.log4j.flume.appender.FlumeAppender.append(FlumeAppender.java:90)
        at 
org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:102)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:402)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:383)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:386)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:344)
        at org.apache.logging.log4j.core.Logger.log(Logger.java:108)
        at 
org.apache.logging.log4j.spi.AbstractLogger.error(AbstractLogger.java:559)
        at com.globalrelay.apps.zzzzzzzzzzzzzzzzztest.App.main(App.java:26)
Caused by: java.net.ConnectException: Connection refused
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at 
sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:692)
        at 
org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.connect(NioClientSocketPipelineSink.java:396)
        at 
org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.processSelectedKeys(NioClientSocketPipelineSink.java:358)
        at 
org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.run(NioClientSocketPipelineSink.java:274)
        at 
org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:722)

ERROR StatusLogger Unable to create transceiver java.io.IOException: Error 
connecting to /127.0.0.1:36892
        at 
org.apache.avro.ipc.NettyTransceiver.getChannel(NettyTransceiver.java:261)
        at 
org.apache.avro.ipc.NettyTransceiver.<init>(NettyTransceiver.java:203)
        at 
org.apache.avro.ipc.NettyTransceiver.<init>(NettyTransceiver.java:152)
        at 
org.apache.avro.ipc.NettyTransceiver.<init>(NettyTransceiver.java:120)
        at 
org.apache.avro.ipc.NettyTransceiver.<init>(NettyTransceiver.java:107)
        at 
org.apache.logging.log4j.flume.appender.FlumeAvroManager.connect(FlumeAvroManager.java:301)
        at 
org.apache.logging.log4j.flume.appender.FlumeAvroManager.send(FlumeAvroManager.java:241)
        at 
org.apache.logging.log4j.flume.appender.FlumeAppender.append(FlumeAppender.java:90)
        at 
org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:102)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:402)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:383)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:386)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:344)
        at org.apache.logging.log4j.core.Logger.log(Logger.java:108)
        at 
org.apache.logging.log4j.spi.AbstractLogger.error(AbstractLogger.java:559)
        at com.globalrelay.apps.zzzzzzzzzzzzzzzzztest.App.main(App.java:26)
Caused by: java.net.ConnectException: Connection refused
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at 
sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:692)
        at 
org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.connect(NioClientSocketPipelineSink.java:396)
        at 
org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.processSelectedKeys(NioClientSocketPipelineSink.java:358)
        at 
org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.run(NioClientSocketPipelineSink.java:274)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:722)

ERROR StatusLogger An exception occurred processing Appender FlumeAvroAppender 
org.apache.logging.log4j.core.appender.AppenderRuntimeException: Unable to 
write to FlumeAvro[127.0.0.1:36892,127.0.0.1:36892] at 127.0.0.1:36892
        at 
org.apache.logging.log4j.flume.appender.FlumeAvroManager.send(FlumeAvroManager.java:267)
        at 
org.apache.logging.log4j.flume.appender.FlumeAppender.append(FlumeAppender.java:90)
        at 
org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:102)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:402)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:383)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:386)
        at 
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:344)
        at org.apache.logging.log4j.core.Logger.log(Logger.java:108)
        at 
org.apache.logging.log4j.spi.AbstractLogger.error(AbstractLogger.java:559)
        at com.globalrelay.apps.zzzzzzzzzzzzzzzzztest.App.main(App.java:26)


log message took2018

{quote}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to