[ https://issues.apache.org/jira/browse/LOG4J2-993?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ralph Goers resolved LOG4J2-993. -------------------------------- Resolution: Fixed Assignee: Ralph Goers Fix applied with unit test. > Potential deadlock if a new Logger is created while log4j is reconfiguring in > another thread > -------------------------------------------------------------------------------------------- > > Key: LOG4J2-993 > URL: https://issues.apache.org/jira/browse/LOG4J2-993 > Project: Log4j 2 > Issue Type: Bug > Components: Core > Affects Versions: 2.2 > Reporter: Gary Gregory > Assignee: Ralph Goers > Fix For: 2.3 > > > When building log4j with this set up: > {noformat} > Apache Maven 3.3.1 (cab6659f9874fa96462afef40fcf6bc033d58c1c; > 2015-03-13T13:10:27-07:00) > Maven home: C:\Java\apache-maven-3.3.1 > Java version: 1.7.0_75, vendor: Oracle Corporation > Java home: C:\Program Files\Java\jdk1.7.0_75\jre > Default locale: en_US, platform encoding: Cp1252 > OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows" > {noformat} > and running {{mvn test -pl !log4j-perf}} I get: > {noformat} > 2015-03-25 00:31:37,884 DEBUG Reconfiguration complete for > context[name=1208470774] at null > (org.apache.logging.log4j.core.LoggerContext@5682a3b2) with optional > ClassLoader: null > Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 69.089 sec - > in org.apache.logging.log4j.flume.appender.FlumeEmbeddedAgentTest > Tests run: 7, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 76.252 sec > <<< FAILURE! - in org.apache.logging.log4j.flume.appender.FlumeAppenderTest > testNotConnected(org.apache.logging.log4j.flume.appender.FlumeAppenderTest) > Time elapsed: 28.282 sec <<< ERROR! > org.apache.logging.log4j.core.appender.AppenderLoggingException: No Flume > agents are available > at > org.apache.logging.log4j.flume.appender.FlumeAvroManager.send(FlumeAvroManager.java:178) > at > org.apache.logging.log4j.flume.appender.FlumeAppender.append(FlumeAppender.java:106) > at > org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:99) > at > org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:430) > at > org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:409) > at > org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:367) > at org.apache.logging.log4j.core.Logger.logMessage(Logger.java:112) > at > org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:727) > at > org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:716) > at > org.apache.logging.log4j.spi.AbstractLogger.info(AbstractLogger.java:526) > at > org.apache.logging.log4j.flume.appender.FlumeAppenderTest.testNotConnected(FlumeAppenderTest.java:317) > {noformat} > And the build looks hung up. > jstack says: > {noformat} > 2015-03-25 00:39:59 > Full thread dump Java HotSpot(TM) 64-Bit Server VM (24.75-b04 mixed mode): > "Thread-2" daemon prio=6 tid=0x000000000da69800 nid=0x3590 waiting for > monitor entry [0x0000000011c5e000] > java.lang.Thread.State: BLOCKED (on object monitor) > at > org.apache.logging.log4j.core.LoggerContext.getConfigLocation(LoggerContext.java:400) > - waiting to lock <0x00000007d8c32370> (a > org.apache.logging.log4j.core.LoggerContext) > at > org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.locateContext(ClassLoaderContextSelector.java:156) > at > org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:70) > at > org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:57) > at > org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:142) > at > org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:1) > at org.apache.logging.log4j.LogManager.getContext(LogManager.java:175) > at > org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:102) > at > org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:43) > at > org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:42) > at > org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29) > at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:277) > at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:288) > at > org.apache.flume.api.NettyAvroRpcClient.<clinit>(NettyAvroRpcClient.java:103) > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:191) > at > org.apache.flume.api.RpcClientFactory.getInstance(RpcClientFactory.java:73) > at > org.apache.flume.api.FailoverRpcClient.getNextClient(FailoverRpcClient.java:264) > at > org.apache.flume.api.FailoverRpcClient.getClient(FailoverRpcClient.java:125) > - locked <0x00000007d70ec370> (a > org.apache.flume.api.FailoverRpcClient) > at > org.apache.flume.api.FailoverRpcClient.appendBatch(FailoverRpcClient.java:200) > at > org.apache.logging.log4j.flume.appender.FlumeAvroManager.send(FlumeAvroManager.java:146) > - locked <0x00000007d7064178> (a > org.apache.logging.log4j.flume.appender.FlumePersistentManager) > at > org.apache.logging.log4j.flume.appender.FlumePersistentManager$WriterThread.sendBatch(FlumePersistentManager.java:691) > at > org.apache.logging.log4j.flume.appender.FlumePersistentManager$WriterThread.run(FlumePersistentManager.java:651) > Locked ownable synchronizers: > - None > "Checkpointer" daemon prio=6 tid=0x000000000da69000 nid=0x2898 in > Object.wait() [0x0000000011aaf000] > java.lang.Thread.State: WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > - waiting on <0x00000007d693d758> (a java.lang.Object) > at java.lang.Object.wait(Object.java:503) > at com.sleepycat.je.utilint.DaemonThread.run(DaemonThread.java:175) > - locked <0x00000007d693d758> (a java.lang.Object) > at java.lang.Thread.run(Thread.java:745) > Locked ownable synchronizers: > - None > "Cleaner-1" daemon prio=6 tid=0x000000000da68000 nid=0x170 in Object.wait() > [0x000000001191f000] > java.lang.Thread.State: WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > - waiting on <0x00000007d6b372f8> (a java.lang.Object) > at java.lang.Object.wait(Object.java:503) > at com.sleepycat.je.utilint.DaemonThread.run(DaemonThread.java:175) > - locked <0x00000007d6b372f8> (a java.lang.Object) > at java.lang.Thread.run(Thread.java:745) > Locked ownable synchronizers: > - None > "INCompressor" daemon prio=6 tid=0x000000000da67800 nid=0x3d9c in > Object.wait() [0x00000000110ee000] > java.lang.Thread.State: TIMED_WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > - waiting on <0x00000007d69b8bb8> (a java.lang.Object) > at com.sleepycat.je.utilint.DaemonThread.run(DaemonThread.java:177) > - locked <0x00000007d69b8bb8> (a java.lang.Object) > at java.lang.Thread.run(Thread.java:745) > Locked ownable synchronizers: > - None > "New I/O server boss #2 ([id: 0x1cba2c1d, /127.0.0.1:1502])" prio=6 > tid=0x000000000da66800 nid=0x272c runnable [0x000000001171e000] > java.lang.Thread.State: RUNNABLE > at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:296) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl.java:278) > at > sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:159) > at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87) > - locked <0x00000007d8bd77d8> (a sun.nio.ch.Util$2) > - locked <0x00000007d8bd77c8> (a > java.util.Collections$UnmodifiableSet) > - locked <0x00000007d8bd7340> (a sun.nio.ch.WindowsSelectorImpl) > at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98) > at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:102) > at > org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink$Boss.run(NioServerSocketPipelineSink.java:231) > at > org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102) > at > org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Locked ownable synchronizers: > - <0x00000007d8bd4fa0> (a > java.util.concurrent.ThreadPoolExecutor$Worker) > - <0x00000007d8c2ffe0> (a > java.util.concurrent.locks.ReentrantLock$NonfairSync) > "New I/O worker #16" prio=6 tid=0x000000000da66000 nid=0x19b4 runnable > [0x00000000115bf000] > java.lang.Thread.State: RUNNABLE > at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:296) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl.java:278) > at > sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:159) > at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87) > - locked <0x00000007d8bf7390> (a sun.nio.ch.Util$2) > - locked <0x00000007d8bf7380> (a > java.util.Collections$UnmodifiableSet) > - locked <0x00000007d8bf7230> (a sun.nio.ch.WindowsSelectorImpl) > at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98) > at > org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64) > at > org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:244) > at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35) > at > org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102) > at > org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Locked ownable synchronizers: > - <0x00000007d8bdaf58> (a > java.util.concurrent.ThreadPoolExecutor$Worker) > "New I/O worker #15" prio=6 tid=0x000000000da65000 nid=0x12d8 runnable > [0x00000000113ef000] > java.lang.Thread.State: RUNNABLE > at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:296) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl.java:278) > at > sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:159) > at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87) > - locked <0x00000007d8bf2d38> (a sun.nio.ch.Util$2) > - locked <0x00000007d8bf2d28> (a > java.util.Collections$UnmodifiableSet) > - locked <0x00000007d8bf2bd8> (a sun.nio.ch.WindowsSelectorImpl) > at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98) > at > org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64) > at > org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:244) > at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35) > at > org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102) > at > org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Locked ownable synchronizers: > - <0x00000007d8bf2a28> (a > java.util.concurrent.ThreadPoolExecutor$Worker) > "New I/O worker #14" prio=6 tid=0x000000000da64800 nid=0x32b4 runnable > [0x000000001128f000] > java.lang.Thread.State: RUNNABLE > at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:296) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl.java:278) > at > sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:159) > at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87) > - locked <0x00000007d8bdb400> (a sun.nio.ch.Util$2) > - locked <0x00000007d8bdb3f0> (a > java.util.Collections$UnmodifiableSet) > - locked <0x00000007d8bdb2a0> (a sun.nio.ch.WindowsSelectorImpl) > at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98) > at > org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64) > at > org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:244) > at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35) > at > org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102) > at > org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Locked ownable synchronizers: > - <0x00000007d8bdb0f0> (a > java.util.concurrent.ThreadPoolExecutor$Worker) > "New I/O worker #13" prio=6 tid=0x000000000da63800 nid=0x2944 runnable > [0x0000000010fae000] > java.lang.Thread.State: RUNNABLE > at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:296) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl.java:278) > at > sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:159) > at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87) > - locked <0x00000007d8be73d8> (a sun.nio.ch.Util$2) > - locked <0x00000007d8be73c8> (a > java.util.Collections$UnmodifiableSet) > - locked <0x00000007d8be7278> (a sun.nio.ch.WindowsSelectorImpl) > at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98) > at > org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64) > at > org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:244) > at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35) > at > org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102) > at > org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Locked ownable synchronizers: > - <0x00000007d8be70c8> (a > java.util.concurrent.ThreadPoolExecutor$Worker) > "New I/O worker #12" prio=6 tid=0x000000000da63000 nid=0x2bf8 runnable > [0x0000000010e1e000] > java.lang.Thread.State: RUNNABLE > at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:296) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl.java:278) > at > sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:159) > at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87) > - locked <0x00000007d8bef3d8> (a sun.nio.ch.Util$2) > - locked <0x00000007d8bef3c8> (a > java.util.Collections$UnmodifiableSet) > - locked <0x00000007d8bef278> (a sun.nio.ch.WindowsSelectorImpl) > at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98) > at > org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64) > at > org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:244) > at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35) > at > org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102) > at > org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Locked ownable synchronizers: > - <0x00000007d8bef0c8> (a > java.util.concurrent.ThreadPoolExecutor$Worker) > "New I/O worker #11" prio=6 tid=0x000000000da62000 nid=0x3e48 runnable > [0x00000000108ef000] > java.lang.Thread.State: RUNNABLE > at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:296) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl.java:278) > at > sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:159) > at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87) > - locked <0x00000007d8bdf3d8> (a sun.nio.ch.Util$2) > - locked <0x00000007d8bdf3c8> (a > java.util.Collections$UnmodifiableSet) > - locked <0x00000007d8bdf278> (a sun.nio.ch.WindowsSelectorImpl) > at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98) > at > org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64) > at > org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:244) > at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35) > at > org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102) > at > org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Locked ownable synchronizers: > - <0x00000007d8bdf0c8> (a > java.util.concurrent.ThreadPoolExecutor$Worker) > "New I/O worker #10" prio=6 tid=0x000000000e05b000 nid=0x2a34 runnable > [0x0000000010cce000] > java.lang.Thread.State: RUNNABLE > at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:296) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl.java:278) > at > sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:159) > at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87) > - locked <0x00000007d8be2d38> (a sun.nio.ch.Util$2) > - locked <0x00000007d8be2d28> (a > java.util.Collections$UnmodifiableSet) > - locked <0x00000007d8be2bd8> (a sun.nio.ch.WindowsSelectorImpl) > at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98) > at > org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64) > at > org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:244) > at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35) > at > org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102) > at > org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Locked ownable synchronizers: > - <0x00000007d8be2a28> (a > java.util.concurrent.ThreadPoolExecutor$Worker) > "New I/O worker #9" prio=6 tid=0x000000000deec800 nid=0x3970 runnable > [0x0000000010b8e000] > java.lang.Thread.State: RUNNABLE > at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:296) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl.java:278) > at > sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:159) > at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87) > - locked <0x00000007d8bead38> (a sun.nio.ch.Util$2) > - locked <0x00000007d8bead28> (a > java.util.Collections$UnmodifiableSet) > - locked <0x00000007d8beabd8> (a sun.nio.ch.WindowsSelectorImpl) > at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98) > at > org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64) > at > org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:244) > at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35) > at > org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102) > at > org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Locked ownable synchronizers: > - <0x00000007d8beaa28> (a > java.util.concurrent.ThreadPoolExecutor$Worker) > "New I/O server boss #1 ([id: 0xfc48b347, /127.0.0.1:1501])" prio=6 > tid=0x000000000df9e800 nid=0x3c9c runnable [0x0000000010a3e000] > java.lang.Thread.State: RUNNABLE > at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:296) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl.java:278) > at > sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:159) > at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87) > - locked <0x00000007d8c225a8> (a sun.nio.ch.Util$2) > - locked <0x00000007d8c22598> (a > java.util.Collections$UnmodifiableSet) > - locked <0x00000007d8c22120> (a sun.nio.ch.WindowsSelectorImpl) > at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98) > at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:102) > at > org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink$Boss.run(NioServerSocketPipelineSink.java:231) > at > org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102) > at > org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Locked ownable synchronizers: > - <0x00000007d8bd4878> (a > java.util.concurrent.ThreadPoolExecutor$Worker) > - <0x00000007d8c2d920> (a > java.util.concurrent.locks.ReentrantLock$NonfairSync) > "New I/O worker #8" prio=6 tid=0x000000000d975800 nid=0x1640 runnable > [0x00000000107de000] > java.lang.Thread.State: RUNNABLE > at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:296) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl.java:278) > at > sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:159) > at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87) > - locked <0x00000007d8c17370> (a sun.nio.ch.Util$2) > - locked <0x00000007d8c17360> (a > java.util.Collections$UnmodifiableSet) > - locked <0x00000007d8c17210> (a sun.nio.ch.WindowsSelectorImpl) > at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98) > at > org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64) > at > org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:244) > at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35) > at > org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102) > at > org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Locked ownable synchronizers: > - <0x00000007d8bfaa60> (a > java.util.concurrent.ThreadPoolExecutor$Worker) > "New I/O worker #7" prio=6 tid=0x000000000d973800 nid=0x3c2c runnable > [0x00000000106cf000] > java.lang.Thread.State: RUNNABLE > at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:296) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl.java:278) > at > sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:159) > at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87) > - locked <0x00000007d8c0f3d8> (a sun.nio.ch.Util$2) > - locked <0x00000007d8c0f3c8> (a > java.util.Collections$UnmodifiableSet) > - locked <0x00000007d8c0f278> (a sun.nio.ch.WindowsSelectorImpl) > at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98) > at > org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64) > at > org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:244) > at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35) > at > org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102) > at > org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Locked ownable synchronizers: > - <0x00000007d8c0f0c8> (a > java.util.concurrent.ThreadPoolExecutor$Worker) > "New I/O worker #6" prio=6 tid=0x00000000023b2000 nid=0x3fd4 runnable > [0x00000000104ee000] > java.lang.Thread.State: RUNNABLE > at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:296) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl.java:278) > at > sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:159) > at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87) > - locked <0x00000007d8bff3d8> (a sun.nio.ch.Util$2) > - locked <0x00000007d8bff3c8> (a > java.util.Collections$UnmodifiableSet) > - locked <0x00000007d8bff278> (a sun.nio.ch.WindowsSelectorImpl) > at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98) > at > org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64) > at > org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:244) > at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35) > at > org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102) > at > org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Locked ownable synchronizers: > - <0x00000007d8bff0c8> (a > java.util.concurrent.ThreadPoolExecutor$Worker) > "New I/O worker #5" prio=6 tid=0x00000000023b0000 nid=0x30c4 runnable > [0x000000001031e000] > java.lang.Thread.State: RUNNABLE > at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:296) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl.java:278) > at > sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:159) > at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87) > - locked <0x00000007d8c0ad58> (a sun.nio.ch.Util$2) > - locked <0x00000007d8c0ad48> (a > java.util.Collections$UnmodifiableSet) > - locked <0x00000007d8c0abf8> (a sun.nio.ch.WindowsSelectorImpl) > at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98) > at > org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64) > at > org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:244) > at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35) > at > org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102) > at > org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Locked ownable synchronizers: > - <0x00000007d8c0aa48> (a > java.util.concurrent.ThreadPoolExecutor$Worker) > "New I/O worker #4" prio=6 tid=0x000000000dd2b000 nid=0x2904 runnable > [0x000000001000f000] > java.lang.Thread.State: RUNNABLE > at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:296) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl.java:278) > at > sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:159) > at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87) > - locked <0x00000007d8c02d38> (a sun.nio.ch.Util$2) > - locked <0x00000007d8c02d28> (a > java.util.Collections$UnmodifiableSet) > - locked <0x00000007d8c02bd8> (a sun.nio.ch.WindowsSelectorImpl) > at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98) > at > org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64) > at > org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:244) > at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35) > at > org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102) > at > org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Locked ownable synchronizers: > - <0x00000007d8c02a28> (a > java.util.concurrent.ThreadPoolExecutor$Worker) > "New I/O worker #3" prio=6 tid=0x000000000dd09800 nid=0x3e60 runnable > [0x000000001019e000] > java.lang.Thread.State: RUNNABLE > at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:296) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl.java:278) > at > sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:159) > at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87) > - locked <0x00000007d8c073d8> (a sun.nio.ch.Util$2) > - locked <0x00000007d8c073c8> (a > java.util.Collections$UnmodifiableSet) > - locked <0x00000007d8c07278> (a sun.nio.ch.WindowsSelectorImpl) > at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98) > at > org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64) > at > org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:244) > at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35) > at > org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102) > at > org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Locked ownable synchronizers: > - <0x00000007d8c070c8> (a > java.util.concurrent.ThreadPoolExecutor$Worker) > "New I/O worker #2" prio=6 tid=0x000000000de5b000 nid=0x1274 runnable > [0x000000000fecf000] > java.lang.Thread.State: RUNNABLE > at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:296) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl.java:278) > at > sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:159) > at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87) > - locked <0x00000007d8c12d38> (a sun.nio.ch.Util$2) > - locked <0x00000007d8c12d28> (a > java.util.Collections$UnmodifiableSet) > - locked <0x00000007d8c12bd8> (a sun.nio.ch.WindowsSelectorImpl) > at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98) > at > org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64) > at > org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:244) > at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35) > at > org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102) > at > org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Locked ownable synchronizers: > - <0x00000007d8c12a28> (a > java.util.concurrent.ThreadPoolExecutor$Worker) > "New I/O worker #1" prio=6 tid=0x000000000e063800 nid=0x28d4 runnable > [0x000000000fcce000] > java.lang.Thread.State: RUNNABLE > at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:296) > at > sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl.java:278) > at > sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:159) > at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87) > - locked <0x00000007d8bfaf08> (a sun.nio.ch.Util$2) > - locked <0x00000007d8bfaef8> (a > java.util.Collections$UnmodifiableSet) > - locked <0x00000007d8bfada8> (a sun.nio.ch.WindowsSelectorImpl) > at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98) > at > org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64) > at > org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:244) > at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35) > at > org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102) > at > org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Locked ownable synchronizers: > - <0x00000007d8bfabf8> (a > java.util.concurrent.ThreadPoolExecutor$Worker) > "Service Thread" daemon prio=6 tid=0x000000000bba3000 nid=0x1e44 runnable > [0x0000000000000000] > java.lang.Thread.State: RUNNABLE > Locked ownable synchronizers: > - None > "C2 CompilerThread1" daemon prio=10 tid=0x000000000bb9a000 nid=0x2a00 waiting > on condition [0x0000000000000000] > java.lang.Thread.State: RUNNABLE > Locked ownable synchronizers: > - None > "C2 CompilerThread0" daemon prio=10 tid=0x000000000bb98000 nid=0x1af0 waiting > on condition [0x0000000000000000] > java.lang.Thread.State: RUNNABLE > Locked ownable synchronizers: > - None > "Attach Listener" daemon prio=10 tid=0x000000000bb95000 nid=0x47c runnable > [0x0000000000000000] > java.lang.Thread.State: RUNNABLE > Locked ownable synchronizers: > - None > "Signal Dispatcher" daemon prio=10 tid=0x000000000bb90000 nid=0x3de8 runnable > [0x0000000000000000] > java.lang.Thread.State: RUNNABLE > Locked ownable synchronizers: > - None > "Finalizer" daemon prio=8 tid=0x000000000bb39000 nid=0x3afc in Object.wait() > [0x000000000cfbe000] > java.lang.Thread.State: WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > - waiting on <0x00000007d8b01528> (a > java.lang.ref.ReferenceQueue$Lock) > at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135) > - locked <0x00000007d8b01528> (a java.lang.ref.ReferenceQueue$Lock) > at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151) > at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209) > Locked ownable synchronizers: > - None > "Reference Handler" daemon prio=10 tid=0x000000000bb32000 nid=0x3f54 in > Object.wait() [0x000000000cebf000] > java.lang.Thread.State: WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > - waiting on <0x00000007d8b009c8> (a java.lang.ref.Reference$Lock) > at java.lang.Object.wait(Object.java:503) > at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133) > - locked <0x00000007d8b009c8> (a java.lang.ref.Reference$Lock) > Locked ownable synchronizers: > - None > "main" prio=6 tid=0x00000000023aa000 nid=0x30c8 in Object.wait() > [0x000000000260d000] > java.lang.Thread.State: WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > - waiting on <0x00000007d714b358> (a > org.apache.logging.log4j.flume.appender.FlumePersistentManager$WriterThread) > at java.lang.Thread.join(Thread.java:1281) > - locked <0x00000007d714b358> (a > org.apache.logging.log4j.flume.appender.FlumePersistentManager$WriterThread) > at java.lang.Thread.join(Thread.java:1355) > at > org.apache.logging.log4j.flume.appender.FlumePersistentManager.releaseSub(FlumePersistentManager.java:236) > at > org.apache.logging.log4j.core.appender.AbstractManager.release(AbstractManager.java:119) > at > org.apache.logging.log4j.flume.appender.FlumeAppender.stop(FlumeAppender.java:112) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.stop(AbstractConfiguration.java:237) > at > org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:364) > - locked <0x00000007d8c32370> (a > org.apache.logging.log4j.core.LoggerContext) > at > org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:420) > - locked <0x00000007d8c32370> (a > org.apache.logging.log4j.core.LoggerContext) > at > org.apache.logging.log4j.flume.appender.FlumePersistentAppenderTest.teardown(FlumePersistentAppenderTest.java:114) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) > at > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) > at > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) > at > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:33) > at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) > at > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) > at > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) > at org.junit.runners.ParentRunner.run(ParentRunner.java:309) > at > org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264) > at > org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153) > at > org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124) > at > org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200) > at > org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153) > at > org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103) > Locked ownable synchronizers: > - <0x00000007d8c76348> (a > java.util.concurrent.locks.ReentrantLock$NonfairSync) > "VM Thread" prio=10 tid=0x000000000bb2b800 nid=0x26e8 runnable > "GC task thread#0 (ParallelGC)" prio=6 tid=0x00000000023bf000 nid=0x3860 > runnable > "GC task thread#1 (ParallelGC)" prio=6 tid=0x00000000023c0800 nid=0x27a0 > runnable > "GC task thread#2 (ParallelGC)" prio=6 tid=0x00000000023c2000 nid=0x29b8 > runnable > "GC task thread#3 (ParallelGC)" prio=6 tid=0x00000000023c4000 nid=0x2a84 > runnable > "VM Periodic Task Thread" prio=10 tid=0x000000000bbac000 nid=0x2e64 waiting > on condition > JNI global references: 291 > {noformat} > ---- > Comment from Mikhail: > It's a classical deadlock. Thread {{main}} got the instance lock of the > {{LoggerContext}} ({{- locked <0x00000007d8c32370> (a > org.apache.logging.log4j.core.LoggerContext) at > org.apache.logging.log4j.flume.appender.FlumePersistentAppenderTest.teardown(FlumePersistentAppenderTest.java:114)}}) > and then it waits for another thread - {{Thread-2}} to finish (thread.join() > {{at java.lang.Thread.join(Thread.java:1281)}}) but that thread is waiting > for the above mentioned lock ({{at > org.apache.logging.log4j.core.LoggerContext.getConfigLocation(LoggerContext.java:400) > - waiting to lock <0x00000007d8c32370> (a > org.apache.logging.log4j.core.LoggerContext)}}). IMHO it is an issue > unrelated to my patch. > {noformat} > "main" prio=6 tid=0x00000000023aa000 nid=0x30c8 in Object.wait() > [0x000000000260d000] > java.lang.Thread.State: WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > - waiting on <0x00000007d714b358> (a > org.apache.logging.log4j.flume.appender.FlumePersistentManager$WriterThread) > at java.lang.Thread.join(Thread.java:1281) > - locked <0x00000007d714b358> (a > org.apache.logging.log4j.flume.appender.FlumePersistentManager$WriterThread) > at java.lang.Thread.join(Thread.java:1355) > at > org.apache.logging.log4j.flume.appender.FlumePersistentManager.releaseSub(FlumePersistentManager.java:236) > at > org.apache.logging.log4j.core.appender.AbstractManager.release(AbstractManager.java:119) > at > org.apache.logging.log4j.flume.appender.FlumeAppender.stop(FlumeAppender.java:112) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.stop(AbstractConfiguration.java:237) > at > org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:364) > - locked <0x00000007d8c32370> (a > org.apache.logging.log4j.core.LoggerContext) > at > org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:420) > - locked <0x00000007d8c32370> (a > org.apache.logging.log4j.core.LoggerContext) > at > org.apache.logging.log4j.flume.appender.FlumePersistentAppenderTest.teardown(FlumePersistentAppenderTest.java:114) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) > at > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) > at > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) > at > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:33) > at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) > at > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) > at > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) > at org.junit.runners.ParentRunner.run(ParentRunner.java:309) > at > org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264) > at > org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153) > at > org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124) > at > org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200) > at > org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153) > at > org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103) > Locked ownable synchronizers: > - <0x00000007d8c76348> (a > java.util.concurrent.locks.ReentrantLock$NonfairSync) > {noformat} > {noformat} > "Thread-2" daemon prio=6 tid=0x000000000da69800 nid=0x3590 waiting for > monitor entry [0x0000000011c5e000] > java.lang.Thread.State: BLOCKED (on object monitor) > at > org.apache.logging.log4j.core.LoggerContext.getConfigLocation(LoggerContext.java:400) > - waiting to lock <0x00000007d8c32370> (a > org.apache.logging.log4j.core.LoggerContext) > at > org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.locateContext(ClassLoaderContextSelector.java:156) > at > org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:70) > at > org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:57) > at > org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:142) > at > org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:1) > at org.apache.logging.log4j.LogManager.getContext(LogManager.java:175) > at > org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:102) > at > org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:43) > at > org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:42) > at > org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29) > at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:277) > at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:288) > at > org.apache.flume.api.NettyAvroRpcClient.<clinit>(NettyAvroRpcClient.java:103) > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:191) > at > org.apache.flume.api.RpcClientFactory.getInstance(RpcClientFactory.java:73) > at > org.apache.flume.api.FailoverRpcClient.getNextClient(FailoverRpcClient.java:264) > at > org.apache.flume.api.FailoverRpcClient.getClient(FailoverRpcClient.java:125) > - locked <0x00000007d70ec370> (a > org.apache.flume.api.FailoverRpcClient) > at > org.apache.flume.api.FailoverRpcClient.appendBatch(FailoverRpcClient.java:200) > at > org.apache.logging.log4j.flume.appender.FlumeAvroManager.send(FlumeAvroManager.java:146) > - locked <0x00000007d7064178> (a > org.apache.logging.log4j.flume.appender.FlumePersistentManager) > at > org.apache.logging.log4j.flume.appender.FlumePersistentManager$WriterThread.sendBatch(FlumePersistentManager.java:691) > at > org.apache.logging.log4j.flume.appender.FlumePersistentManager$WriterThread.run(FlumePersistentManager.java:651) > Locked ownable synchronizers: > - None > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-dev-h...@logging.apache.org