[
https://issues.apache.org/jira/browse/LOG4J2-571?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13940349#comment-13940349
]
Chris Graham commented on LOG4J2-571:
-------------------------------------
That fixed it, or so it appears.
To explain further, the Archiva doco,
http://archiva.apache.org/docs/1.4-M4/adminguide/logging.html, and the current
release, http://archiva.apache.org/docs/2.0.1/adminguide/logging.html, only
list the -DAsyncLogger.WaitStrategy=Block option.
But in my jetlagged state, I didn't click that a) there was a
-DAsyncLoggerConfig.WaitStrategy=Block option, and b) that is was the
AsyncLoggerConfig thread that was going nuts! I'd not tied the two together.
Setting -DAsyncLoggerConfig.WaitStrategy=Block has made it behave as I'd have
expected.
What I do not understand is why we have the issue to start with, as running the
same code in a multi CPU linux VM does not trigger it.
I will ask for the Apache Archiva doco to be updated, to reference BOTH -D
options!
Please close this issue. I will reopen it if I ever need too.
Thank you all for your time and looking at it.
Thanks heaps! This has driven me nuts for months!
-Chris
> AsyncLoggerConfig-1 Thread consuming excessive CPU
> --------------------------------------------------
>
> Key: LOG4J2-571
> URL: https://issues.apache.org/jira/browse/LOG4J2-571
> Project: Log4j 2
> Issue Type: Bug
> Affects Versions: 2.0-rc1
> Environment: AIX 6.1
> oslevel -s: 6100-08-02-1316
> IBM WAS: 8.5.0.2
> IBM JRE/JDK:
> /opt/IBM/WebSphere/AppServer/java/bin/java -version
> java version "1.6.0"
> Java(TM) SE Runtime Environment (build pap6460_26sr5fp2-20130423_01(SR5 FP2))
> IBM J9 VM (build 2.6, JRE 1.6.0 AIX ppc64-64 Compressed References
> 20130419_145740 (JIT disabled, AOT disabled)
> J9VM - R26_Java626_SR5_FP2_20130419_1420_B145740
> GC - R26_Java626_SR5_FP2_20130419_1420_B145740_CMPRSS
> J9CL - 20130419_145740)
> JCL - 20130419_01
> Reporter: Chris Graham
>
> In this instance, I'm an indirect used of log4j2 2.0-rc1, as it's in the web
> app that I'm using, Apache Archiva 2.0.1.
> The issue is that when running under WebSphere 8.5.0.2 (obviously on the IBM
> JDK, 1.6) on AIX 6.1 TL8, Apache Archiva when it's doing nothing, is sitting
> idle on around 50% CPU.
> Using the native AIX perf/mon tools, I've traced the source of the issue
> through to this Java thread. This is the relevant section from the heap dump.
> 3XMTHREADINFO "AsyncLoggerConfig-1" J9VMThread:0x0000000031D14600,
> j9thread_t:0x00000100137D8BD0, java/lang/Thread:0x000000004301C508, state:CW,
> prio=5
> 3XMJAVALTHREAD (java/lang/Thread getId:0x6A, isDaemon:true)
> 3XMTHREADINFO1 (native thread ID:0x2BF00F9, native priority:0x5,
> native policy:UNKNOWN)
> 3XMHEAPALLOC Heap bytes allocated since last GC cycle=0 (0x0)
> 3XMTHREADINFO3 Java callstack:
> 4XESTACKTRACE at sun/misc/Unsafe.park(Native Method)
> 4XESTACKTRACE at
> java/util/concurrent/locks/LockSupport.parkNanos(LockSupport.java:332)
> 4XESTACKTRACE at
> com/lmax/disruptor/SleepingWaitStrategy.applyWaitMethod(SleepingWaitStrategy.java:66)
> 4XESTACKTRACE at
> com/lmax/disruptor/SleepingWaitStrategy.waitFor(SleepingWaitStrategy.java:39)
> 4XESTACKTRACE at
> com/lmax/disruptor/ProcessingSequenceBarrier.waitFor(ProcessingSequenceBarrier.java:55)
> 4XESTACKTRACE at
> com/lmax/disruptor/BatchEventProcessor.run(BatchEventProcessor.java:115)
> 4XESTACKTRACE at
> java/util/concurrent/ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
> 4XESTACKTRACE at
> java/util/concurrent/ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
> 4XESTACKTRACE at java/lang/Thread.run(Thread.java:773)
> 3XMTHREADINFO3 Native callstack:
> 4XENATIVESTACK _event_wait+0x2b8 (0x09000000007E7D3C
> [libpthreads.a+0x16d3c])
> 4XENATIVESTACK _cond_wait_local+0x4e4 (0x09000000007F5A48
> [libpthreads.a+0x24a48])
> 4XENATIVESTACK _cond_wait+0xbc (0x09000000007F6020
> [libpthreads.a+0x25020])
> 4XENATIVESTACK pthread_cond_wait+0x1a8 (0x09000000007F6C8C
> [libpthreads.a+0x25c8c])
> 4XENATIVESTACK (0x0900000001223014 [libj9thr26.so+0x6014])
> 4XENATIVESTACK (0x0900000001222C60 [libj9thr26.so+0x5c60])
> 4XENATIVESTACK (0x090000000116AE58 [libj9vm26.so+0xfe58])
> 4XENATIVESTACK (0x090000000116B17C [libj9vm26.so+0x1017c])
> 4XENATIVESTACK (0x0900000001810528 [libjclscar_26.so+0x5c528])
> 4XENATIVESTACK (0x0900000001813B98 [libjclscar_26.so+0x5fb98])
> 4XENATIVESTACK (0x0900000001161764 [libj9vm26.so+0x6764])
> 4XENATIVESTACK (0x0900000001239CA0 [libj9prt26.so+0x2ca0])
> 4XENATIVESTACK (0x09000000011615D4 [libj9vm26.so+0x65d4])
> 4XENATIVESTACK (0x090000000121FAF4 [libj9thr26.so+0x2af4])
> 4XENATIVESTACK _pthread_body+0xf0 (0x09000000007D4D34
> [libpthreads.a+0x3d34])
> NULL
> I have tried both -DAsyncLoggerConfig.WaitStrategy=Block, explicitly, and the
> default of Sleep (by removing the -D). I have not tried Yield.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]