log4j SocketAppender hang in socketWrite()

Solution Unverified - Updated -

Issue

We're using a log4j SocketAppender to log events. Under load, the SocketAppender gets hung in a native socketWrite0() call, which causes all other request threads that need to log anything getting hung as well. We tried wrapping the SocketAppender in an AsyncAppender but get the same result.

"pool-2-thread-1" daemon prio=10 tid=0x00007fac20005800 nid=0x7666 runnable [0x00007fac60f5c000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)
at java.net.SocketOutputStream.write(SocketOutputStream.java:159)
at java.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1876)
at java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode(ObjectOutputStream.java:1785)
at java.io.ObjectOutputStream.writeNonProxyDesc(ObjectOutputStream.java:1285)
at java.io.ObjectOutputStream.writeClassDesc(ObjectOutputStream.java:1230)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1426)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
at org.apache.log4j.net.SocketAppender.append(SocketAppender.java:268)
at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251)
- locked <0x00000006eb09a288> (a org.apache.log4j.net.SocketAppender)
at org.jboss.as.logging.logmanager.Log4jAppenderHandler.doPublish(Log4jAppenderHandler.java:129)
at org.jboss.logmanager.ExtHandler.publish(ExtHandler.java:76)
at org.jboss.logmanager.handlers.AsyncHandler$AsyncTask.run(AsyncHandler.java:199)
at java.lang.Thread.run(Thread.java:745)

Environment

  • JBoss Enterprise Application Platform (EAP) 6.x

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In
Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.