[
https://issues.apache.org/jira/browse/LOGCXX-432?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Robert Middleton resolved LOGCXX-432.
-------------------------------------
Resolution: Fixed
> AsyncAppender automatically switches to sync mode when e.g. there is no disk
> space available
> --------------------------------------------------------------------------------------------
>
> Key: LOGCXX-432
> URL: https://issues.apache.org/jira/browse/LOGCXX-432
> Project: Log4cxx
> Issue Type: Bug
> Components: Appender
> Affects Versions: 0.10.0, 0.11.0
> Reporter: Robert Luberda
> Assignee: Stephen Webb
> Priority: Major
> Fix For: 1.0.0
>
>
> When there is no available disk space an exception is thrown. The exception
> causes AsyncAppender thread to exit, see line 362 of
> http://svn.apache.org/viewvc/incubator/log4cxx/trunk/src/main/cpp/asyncappender.cpp?revision=1554780&view=markup
> After the thread exits, the append() method starts working synchronously, see
> lines 101 to 109 of the file.
> Obviously when disk is still full, the next call to append(), after it
> switched to sync mode, will still throw an exception. However an application
> can catch and ignore it in order to continue working without any logging (as
> logging is not as important as having the service provided by the application
> available for users).
> After some time the disk space may be cleaned up, but unfortunately our
> program uses synchronized logging, which may affect its performance, because
> of waits on I/O inside log4cxx.
> So please fix this issue by:
> - ensuring the dispatcher thread won't exit on exception (which is quite
> simple, just move the try/catch inside the while loop),
> - and maybe restarting the dispatcher if it dies instead of using sync
> logging (or maybe just ignoring logging/doing nothing if dispatcher dies?)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)