[logback-dev] [Bug 112] Deadlock when running on multiple core processors

bugzilla-daemon at pixie.qos.ch bugzilla-daemon at pixie.qos.ch
Wed Dec 12 12:33:23 CET 2007


http://bugzilla.qos.ch/show_bug.cgi?id=112





------- Comment #3 from toni.heimala at imagesoft.fi  2007-12-12 12:33 -------
(In reply to comment #2)
> Toni, thank you for this report. 
> 
> Could you also provide a a thread dump showing the deadlock?
> 

2007-12-12 12:41:51
Full thread dump Java HotSpot(TM) Client VM (1.6.0_02-b06 mixed mode, sharing):

"DestroyJavaVM" prio=6 tid=0x002e6000 nid=0x1cc waiting on condition
[0x00000000..0x0091fd4c]
   java.lang.Thread.State: RUNNABLE

"Thread-0" prio=6 tid=0x02fad400 nid=0x5b0 waiting for monitor entry
[0x032cf000..0x032cfa94]
   java.lang.Thread.State: BLOCKED (on object monitor)
        at ch.qos.logback.classic.Logger.callAppenders(Logger.java:265)
        - waiting to lock <0x22eade50> (a ch.qos.logback.classic.Logger)
        at
ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:491)
        at ch.qos.logback.classic.Logger.filterAndLog(Logger.java:445)
        at ch.qos.logback.classic.Logger.debug(Logger.java:404)
        at fi.imagesoft.test.Main.run(Main.java:67)

"pool-5-thread-1" prio=6 tid=0x02fac400 nid=0x530 waiting for monitor entry
[0x0327f000..0x0327fc14]
   java.lang.Thread.State: BLOCKED (on object monitor)
        at ch.qos.logback.classic.Logger.callAppenders(Logger.java:265)
        - waiting to lock <0x22eade50> (a ch.qos.logback.classic.Logger)
        at
ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:491)
        at ch.qos.logback.classic.Logger.filterAndLog(Logger.java:464)
        at ch.qos.logback.classic.Logger.debug(Logger.java:408)
        at fi.imagesoft.test.Task.run(Task.java:39)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown
Source)

        at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(Unknown
Source)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(Unknown
Source)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown
Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"pool-4-thread-1" prio=6 tid=0x02fab800 nid=0x660 waiting for monitor entry
[0x0322f000..0x0322fb14]
   java.lang.Thread.State: BLOCKED (on object monitor)
        at ch.qos.logback.classic.Logger.callAppenders(Logger.java:265)
        - waiting to lock <0x22eade50> (a ch.qos.logback.classic.Logger)
        at
ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:491)
        at ch.qos.logback.classic.Logger.filterAndLog(Logger.java:464)
        at ch.qos.logback.classic.Logger.debug(Logger.java:408)
        at fi.imagesoft.test.Task.run(Task.java:40)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown
Source)

        at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(Unknown
Source)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(Unknown
Source)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown
Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"pool-3-thread-1" prio=6 tid=0x02faa800 nid=0x67c waiting for monitor entry
[0x031df000..0x031dfc94]
   java.lang.Thread.State: BLOCKED (on object monitor)
        at ch.qos.logback.classic.Logger.callAppenders(Logger.java:265)
        - waiting to lock <0x22eade50> (a ch.qos.logback.classic.Logger)
        at
ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:491)
        at ch.qos.logback.classic.Logger.filterAndLog(Logger.java:464)
        at ch.qos.logback.classic.Logger.debug(Logger.java:408)
        at fi.imagesoft.test.Task.run(Task.java:40)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown
Source)

        at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(Unknown
Source)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(Unknown
Source)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown
Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"pool-2-thread-1" prio=6 tid=0x02fe6c00 nid=0x130 waiting for monitor entry
[0x0318f000..0x0318fb94]
   java.lang.Thread.State: BLOCKED (on object monitor)
        at ch.qos.logback.classic.Logger.callAppenders(Logger.java:265)
        - waiting to lock <0x22eade50> (a ch.qos.logback.classic.Logger)
        at
ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:491)
        at ch.qos.logback.classic.Logger.filterAndLog(Logger.java:464)
        at ch.qos.logback.classic.Logger.debug(Logger.java:408)
        at fi.imagesoft.test.Task.run(Task.java:40)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown
Source)

        at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(Unknown
Source)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(Unknown
Source)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown
Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"pool-1-thread-1" prio=6 tid=0x02fed000 nid=0x330 runnable
[0x0313f000..0x0313fd14]
   java.lang.Thread.State: RUNNABLE
        at java.net.SocketOutputStream.socketWrite0(Native Method)
        at java.net.SocketOutputStream.socketWrite(Unknown Source)
        at java.net.SocketOutputStream.write(Unknown Source)
        at java.io.ObjectOutputStream$BlockDataOutputStream.write(Unknown
Source)
        at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
        at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
        at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
        at java.io.ObjectOutputStream.writeObject0(Unknown Source)
        at java.io.ObjectOutputStream.writeArray(Unknown Source)
        at java.io.ObjectOutputStream.writeObject0(Unknown Source)
        at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
        at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source)
        at
ch.qos.logback.classic.spi.LoggingEvent.writeObject(LoggingEvent.java:287)
        at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
        at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
        at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
        at java.io.ObjectOutputStream.writeObject0(Unknown Source)
        at java.io.ObjectOutputStream.writeObject(Unknown Source)
        at
ch.qos.logback.core.net.SocketAppenderBase.append(SocketAppenderBase.java:160)
        at ch.qos.logback.core.AppenderBase.doAppend(AppenderBase.java:81)
        - locked <0x22ee7838> (a ch.qos.logback.classic.net.SocketAppender)
        at
ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:51)
        at ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:282)
        at ch.qos.logback.classic.Logger.callAppenders(Logger.java:266)
        - locked <0x22eade50> (a ch.qos.logback.classic.Logger)
        at
ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:491)
        at ch.qos.logback.classic.Logger.filterAndLog(Logger.java:464)
        at ch.qos.logback.classic.Logger.debug(Logger.java:408)
        at fi.imagesoft.test.Task.run(Task.java:40)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown
Source)

        at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(Unknown
Source)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(Unknown
Source)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown
Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"Low Memory Detector" daemon prio=6 tid=0x02aa9800 nid=0x1f4 runnable
[0x00000000..0x00000000]
   java.lang.Thread.State: RUNNABLE

"CompilerThread0" daemon prio=10 tid=0x02aa8000 nid=0x258 waiting on condition
[0x00000000..0x02d5f81c]
   java.lang.Thread.State: RUNNABLE

"Attach Listener" daemon prio=10 tid=0x02aa7000 nid=0x734 runnable
[0x00000000..0x00000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=10 tid=0x02aa6000 nid=0x180 waiting on
condition [0x00000000..0x00000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=8 tid=0x02aa1800 nid=0x68c in Object.wait()
[0x02c6f000..0x02c6fc94]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x22eaabd0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <0x22eaabd0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

"Reference Handler" daemon prio=10 tid=0x02a9d400 nid=0x214 in Object.wait()
[0x02c1f000..0x02c1fd14]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x22eaac60> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:485)
        at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
        - locked <0x22eaac60> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=10 tid=0x02a94000 nid=0x390 runnable

"VM Periodic Task Thread" prio=10 tid=0x02ac4400 nid=0x208 waiting on condition


JNI global references: 1071

Heap
 def new generation   total 960K, used 441K [0x229b0000, 0x22ab0000,
0x22e90000)

  eden space 896K,  42% used [0x229b0000, 0x22a0e6d0, 0x22a90000)
  from space 64K,  99% used [0x22aa0000, 0x22aafff8, 0x22ab0000)
  to   space 64K,   0% used [0x22a90000, 0x22a90000, 0x22aa0000)
 tenured generation   total 4096K, used 3804K [0x22e90000, 0x23290000,
0x269b0000)
   the space 4096K,  92% used [0x22e90000, 0x23247328, 0x23247400, 0x23290000)
 compacting perm gen  total 12288K, used 1528K [0x269b0000, 0x275b0000,
0x2a9b0000)
   the space 12288K,  12% used [0x269b0000, 0x26b2e348, 0x26b2e400, 0x275b0000)
    ro space 8192K,  62% used [0x2a9b0000, 0x2aeaf728, 0x2aeaf800, 0x2b1b0000)
    rw space 12288K,  52% used [0x2b1b0000, 0x2b7f1eb8, 0x2b7f2000, 0x2bdb0000)


-- 
Configure bugmail: http://bugzilla.qos.ch/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the logback-dev mailing list