You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by "Mikhail Dobrinin (JIRA)" <ji...@apache.org> on 2015/04/16 01:10:58 UTC
[jira] [Comment Edited] (LOG4J2-636) IOException: Stream Closed
RollingRandomAccessFile
[ https://issues.apache.org/jira/browse/LOG4J2-636?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14496777#comment-14496777 ]
Mikhail Dobrinin edited comment on LOG4J2-636 at 4/15/15 11:10 PM:
-------------------------------------------------------------------
The trace is actually slightly different than the one posted here, but I suspect the cause is the same.
{noformat}
2015-03-25 11:45:13,743 ERROR Unable to write to stream .../Thread.log for appender MyAppender
2015-03-25 11:45:13,744 ERROR An exception occurred processing Appender MyAppender org.apache.logging.log4j.core.appender.AppenderLoggingException: Error flushing stream .../Thread.log
at org.apache.logging.log4j.core.appender.OutputStreamManager.flush(OutputStreamManager.java:159)
at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:112)
at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:99)
at org.apache.logging.log4j.core.appender.routing.RoutingAppender.append(RoutingAppender.java:113)
at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:99)
at com.company.MyRoutingAppender.append(MyRoutingAppender.java:137)
at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:99)
at org.apache.logging.log4j.core.appender.rewrite.RewriteAppender.append(RewriteAppender.java:89)
at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:99)
at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:430)
at org.apache.logging.log4j.core.async.AsyncLoggerConfig.asyncCallAppenders(AsyncLoggerConfig.java:121)
at org.apache.logging.log4j.core.async.AsyncLoggerConfigHelper$Log4jEventWrapperHandler.onEvent(AsyncLoggerConfigHelper.java:222)
at org.apache.logging.log4j.core.async.AsyncLoggerConfigHelper$Log4jEventWrapperHandler.onEvent(AsyncLoggerConfigHelper.java:207)
at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:128)
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:745)
Caused by: java.io.IOException: Stream Closed
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:345)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
at org.apache.logging.log4j.core.appender.OutputStreamManager.flush(OutputStreamManager.java:156)
... 16 more
{noformat}
There is logic in my application that is closing appenders sometimes and this issue manifests itself when a File appender is closed, but the disruptor has not delivered all the messages that are meant to be in that File appender.
was (Author: mvdobrinin):
The trace is actually slightly different than the one posted here, but I suspect the cause is the same.
{noformat}
2015-03-25 11:45:13,743 ERROR Unable to write to stream .../Thread.log for appender MyAppender
2015-03-25 11:45:13,744 ERROR An exception occurred processing Appender MyAppender org.apache.logging.log4j.core.appender.AppenderLoggingException: Error flushing stream .../Thread.log
at org.apache.logging.log4j.core.appender.OutputStreamManager.flush(OutputStreamManager.java:159)
at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:112)
at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:99)
at org.apache.logging.log4j.core.appender.routing.RoutingAppender.append(RoutingAppender.java:113)
at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:99)
at com.company.MyRoutingAppender.append(MyRoutingAppender.java:137)
at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:99)
at org.apache.logging.log4j.core.appender.rewrite.RewriteAppender.append(RewriteAppender.java:89)
at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:99)
at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:430)
at org.apache.logging.log4j.core.async.AsyncLoggerConfig.asyncCallAppenders(AsyncLoggerConfig.java:121)
at org.apache.logging.log4j.core.async.AsyncLoggerConfigHelper$Log4jEventWrapperHandler.onEvent(AsyncLoggerConfigHelper.java:222)
at org.apache.logging.log4j.core.async.AsyncLoggerConfigHelper$Log4jEventWrapperHandler.onEvent(AsyncLoggerConfigHelper.java:207)
at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:128)
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:745)
Caused by: java.io.IOException: Stream Closed
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:345)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
at org.apache.logging.log4j.core.appender.OutputStreamManager.flush(OutputStreamManager.java:156)
... 16 more
{noformat}
There is logic in my application that is closing appenders sometimes and this pops up when the appender is closed, but the disruptor has not delivered all the messages that are meant to be in the leaf File appender.
> IOException: Stream Closed RollingRandomAccessFile
> --------------------------------------------------
>
> Key: LOG4J2-636
> URL: https://issues.apache.org/jira/browse/LOG4J2-636
> Project: Log4j 2
> Issue Type: Bug
> Components: Appenders
> Affects Versions: 2.0-rc1
> Environment: Linux 3.2.0-4-amd64 #1 SMP Debian 3.2.54-2 x86_64 GNU/Linux
> Reporter: Adrian Wilford
> Assignee: Remko Popma
> Labels: Rollover
> Fix For: 2.1
>
>
> After some time, RollingRandomAccessFile can no longer write logging events (have not run out of disk space).
> {code}
> 2014-05-13 10:05:18,284 ERROR Unable to write to stream logs/CALEEBaskets.log for appender RollingRandomAccessFile
> 2014-05-13 10:05:18,284 ERROR An exception occurred processing Appender RollingRandomAccessFile org.apache.logging.log4j.core.appender.AppenderLoggingException: Error writing to RandomAccessFile logs/CALEEBaskets.log
> at org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager.flush(RollingRandomAccessFileManager.java:109)
> at org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager.write(RollingRandomAccessFileManager.java:90)
> at org.apache.logging.log4j.core.appender.OutputStreamManager.write(OutputStreamManager.java:129)
> at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:120)
> at org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.append(RollingRandomAccessFileAppender.java:96)
> at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:97)
> at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:425)
> at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:406)
> at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:367)
> at org.apache.logging.log4j.core.Logger.log(Logger.java:112)
> at org.apache.logging.log4j.spi.AbstractLogger.debug(AbstractLogger.java:338)
> at com.corticalSystems.CALEE.algorithms.baskets.persistence.orderLogging.OrderLoggingDAL.createNewOrder(OrderLoggingDAL.java:163)
> at com.corticalSystems.CALEE.algorithms.baskets.logic.ConstituentLogicThread.sendNewOrder(ConstituentLogicThread.java:1087)
> at com.corticalSystems.CALEE.algorithms.baskets.logic.ConstituentLogicThread.run(ConstituentLogicThread.java:1587)
> at java.lang.Thread.run(Thread.java:744)
> Caused by: java.io.IOException: Stream Closed
> at java.io.RandomAccessFile.writeBytes0(Native Method)
> at java.io.RandomAccessFile.writeBytes(RandomAccessFile.java:520)
> at java.io.RandomAccessFile.write(RandomAccessFile.java:550)
> at org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager.flush(RollingRandomAccessFileManager.java:106)
> ... 14 more
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org