You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "Andrey Turbanov (JIRA)" <ji...@apache.org> on 2019/03/21 04:39:00 UTC

[jira] [Comment Edited] (LOG4J2-2415) Lock contention in classloader because of missing org.slf4j.ext.EventData

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

Andrey Turbanov edited comment on LOG4J2-2415 at 3/21/19 4:38 AM:
------------------------------------------------------------------

I think it also should be fixed in [log4j-slf4j18-impl/src/main/java/org/apache/logging/slf4j/Log4jLogger.java|https://github.com/apache/logging-log4j2/blob/master/log4j-slf4j18-impl/src/main/java/org/apache/logging/slf4j/Log4jLogger.java]


was (Author: turbanoff):
I think it also should be fixed in {{log4j-slf4j18-impl/src/main/java/org/apache/logging/slf4j/Log4jLogger.java}}

> Lock contention in classloader because of missing org.slf4j.ext.EventData
> -------------------------------------------------------------------------
>
>                 Key: LOG4J2-2415
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-2415
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: SLF4J Bridge
>    Affects Versions: 2.11.0
>            Reporter: Andrey Turbanov
>            Priority: Major
>         Attachments: LOG4J2-2415.patch, screenshot-1.png
>
>
> Recently I found one of lock contention and performance problem in our application.
> As you can see it happens because we don't have {{org.slf4j.ext.EventData}} class in classpath, but slf4j bridge tries to load it on every Logger creation.
> {noformat}
> Class java.lang.ClassLoader.loadClass(java.lang.String, boolean)
>    Class sun.misc.Launcher$AppClassLoader.loadClass(java.lang.String, boolean)
>       Class java.lang.ClassLoader.loadClass(java.lang.String)
>          Class org.apache.logging.log4j.util.LoaderUtil.loadClass(java.lang.String)
>             EventDataConverter org.apache.logging.slf4j.Log4jLogger.createConverter()
>                void org.apache.logging.slf4j.Log4jLogger.<init>(org.apache.logging.log4j.spi.ExtendedLogger, java.lang.String)
>                   Logger org.apache.logging.slf4j.Log4jLoggerFactory.newLogger(java.lang.String, org.apache.logging.log4j.spi.LoggerContext)
>                      Object org.apache.logging.slf4j.Log4jLoggerFactory.newLogger(java.lang.String, org.apache.logging.log4j.spi.LoggerContext)
>                         Object org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(java.lang.String)
>                            Logger org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(java.lang.String)
>                               Logger org.slf4j.LoggerFactory.getLogger(java.lang.String)
>                                  void com.devexperts.dxcore.api.AccountGroupsCacheImpl.<init>()
> {noformat}
>  !screenshot-1.png! 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)