You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "Carter Kozak (Jira)" <ji...@apache.org> on 2020/09/29 14:47:00 UTC

[jira] [Assigned] (LOG4J2-2938) Consider logging all events from background threads synchronously

     [ https://issues.apache.org/jira/browse/LOG4J2-2938?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Carter Kozak reassigned LOG4J2-2938:
------------------------------------

    Assignee: Carter Kozak

> Consider logging all events from background threads synchronously
> -----------------------------------------------------------------
>
>                 Key: LOG4J2-2938
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-2938
>             Project: Log4j 2
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 2.13.3
>            Reporter: Carter Kozak
>            Assignee: Carter Kozak
>            Priority: Major
>
> There's a class of issues that can occur when events are logged in the process of logging other events. We have relatively strong handling for these cases (especially the case where a statement causes itself to be logged recursively) in the synchronous implementation, however the behavior works differently when fully asynchronous logging is used.
> In the worst case, fully asynchronous logging allows an event to log itself until the queue is full, at which point recursion is detected before blocking or logging synchronously.
> We can unify the asynchronous and blocking codepaths by always logging synchronously when events are produced on a Log4jThread. When events are produced from the backgroudn thread, there's no reason to cause churn through the entire queue. Synchronous events must be supported already to handle the full-queue case.
> For context, I've been thinking about this while trying to get to the root cause of [https://github.com/LMAX-Exchange/disruptor/issues/307.] I'm not confident the two are related.
> What do you think?



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