[ODLPARENT-17] slf4j ConsoleAppender block ODL threads Created: 24/Jun/15  Updated: 02/May/18  Resolved: 02/May/18

Status: Resolved
Project: odlparent
Component/s: General
Affects Version/s: None
Fix Version/s: 3.0.3

Type: Bug
Reporter: Guy Regev Assignee: Robert Varga
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issue Links:
Blocks
is blocked by ODLPARENT-23 Milestone: Upgrade karaf to 4.0.1 or ... Resolved
External issue ID: 3852

 Description   

"nioEventLoopGroup-11-3" prio=10 tid=0x00007f9b6c510000 nid=0x131b waiting for monitor entry [0x00007f9ac9a94000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:231)

  • waiting to lock <0x00000000b20126e8> (a org.apache.log4j.ConsoleAppender)
    at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:66)
    at org.apache.log4j.Category.callAppenders(Category.java:193)
    at org.apache.log4j.Category.forcedLog(Category.java:365)
    at org.apache.log4j.Category.log(Category.java:772)
    at org.ops4j.pax.logging.service.internal.PaxLoggerImpl.inform(PaxLoggerImpl.java:143)
    at org.ops4j.pax.logging.internal.TrackingLogger.inform(TrackingLogger.java:86)
    at org.ops4j.pax.logging.slf4j.Slf4jLogger.info(Slf4jLogger.java:476)
    at org.opendaylight.openflowjava.protocol.impl.core.TcpChannelInitializer.initChannel(TcpChannelInitializer.java:60)
    at org.opendaylight.openflowjava.protocol.impl.core.TcpChannelInitializer.initChannel(TcpChannelInitializer.java:32)

"DEFAULT_POOL_9" prio=10 tid=0x00007f9b381a8000 nid=0x6a40 waiting for monitor entry [0x00007f9ac9e99000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:231)

  • waiting to lock <0x00000000b20126e8> (a org.apache.log4j.ConsoleAppender)
    at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:66)
    at org.apache.log4j.Category.callAppenders(Category.java:193)
    at org.apache.log4j.Category.forcedLog(Category.java:365)
    at org.apache.log4j.Category.log(Category.java:772)
    at org.ops4j.pax.logging.service.internal.PaxLoggerImpl.warn(PaxLoggerImpl.java:151)
    at org.ops4j.pax.logging.internal.TrackingLogger.warn(TrackingLogger.java:91)
    at org.ops4j.pax.logging.slf4j.Slf4jLogger.warn(Slf4jLogger.java:697)
    at com.cxtrm.contexcontrol.underlaymanager.impl.controllermanager.ControllerStatusSentry$2.work(ControllerStatusSentry.java:107)
    java.lang.Thread.State: BLOCKED (on object monitor)
    at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:231)
  • waiting to lock <0x00000000b20126e8> (a org.apache.log4j.ConsoleAppender)
    at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:66)
    at org.apache.log4j.Category.callAppenders(Category.java:193)
    at org.apache.log4j.Category.forcedLog(Category.java:365)
    at org.apache.log4j.Category.log(Category.java:772)
    at org.ops4j.pax.logging.service.internal.PaxLoggerImpl.warn(PaxLoggerImpl.java:151)
    at org.ops4j.pax.logging.internal.TrackingLogger.warn(TrackingLogger.java:91)
    at org.ops4j.pax.logging.slf4j.Slf4jLogger.warn(Slf4jLogger.java:716)
    at org.opendaylight.openflowplugin.openflow.md.core.ErrorHandlerSimpleImpl.handleException(ErrorHandlerSimpleImpl.java:35)
    at org.opendaylight.openflowplugin.openflow.md.core.HandshakeManagerImpl.shake(HandshakeManagerImpl.java:117)
    at org.opendaylight.openflowplugin.openflow.md.core.HandshakeStepWrapper.run(HandshakeStepWrapper.java:47)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)

Should consider working with log4j version 2 and higher. It can be possible by working with log4j-slf4j-impl instead of log4j-over-slf4j.



 Comments   
Comment by Vratko Polak [ 14/Jul/15 ]

Integration project does not seem to define logging behavior in any way.

Assigning to Odlparent project, as log4j-over-slf4j (among other things) is defined as dependency there (in pom.xml).

Comment by Vratko Polak [ 14/Jul/15 ]

The original Version field was set to Helium.

Comment by Vratko Polak [ 15/Jul/15 ]

This change solves similar issue in another way. Maybe a cherry-pick to master would fix this Bug for Helium?
https://git.opendaylight.org/gerrit/#/c/23411

Comment by Robert Varga [ 28/Aug/15 ]

Logging is handled by karaf. Log4j2 will be available with karaf 4. Moving to the controller project.

Comment by Tomer Pearl [ 10/Jan/16 ]

This bug cause the JVM to freeze.
Additional info: http://stackoverflow.com/questions/34251580/jvm-freeze-under-high-load-in-longevity-tests

Comment by Robert Varga [ 17/Feb/17 ]

https://git.opendaylight.org/gerrit/51988

Comment by Robert Varga [ 02/May/18 ]

Karaf-4.1.x rolled out, which uses log4j2

Generated at Wed Feb 07 20:27:23 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.