Hi Steve,

How have you determined that there is a deadlock?

At least from the thread dump above, I see no sign of a deadlock.  I see a
bunch of threads waiting on a lock but that can happen for normal healthy
reasons, like waiting on a queue as mentioned elsewhere in this thread.

It would be useful if you could explain what you're doing to provoke this
"deadlock" - e.g. I start up my app, connect on port xx via telnet
and.......

If you haven't done it already, it might also be useful to get a packet
sniffer up and running to see what interactions (if any) are occurring at
network level.

Finally, I think it would also help to see how you've configured the Mina
stack - what filters have you configured etc.

Cheers,

Dan.

On Fri, Dec 5, 2008 at 8:41 AM, Steve Johns <[EMAIL PROTECTED]>wrote:

> I am using mina 1.1.7 and i just want to make the deadlock caused NOT by
> mina itself.Thanks.
> AnonymousIoService is Acceptor thread?
> On Thu, Dec 4, 2008 at 4:36 PM, Emmanuel Lecharny <[EMAIL PROTECTED]
> >wrote:
>
> > Hi,
> >
> > this is a very small piece of information you gave us to work on !!! We
> > don't know anything about your code, about the MINA version you are
> using,
> > etc ...
> >
> > The only thing I can see from this TD is that you have 8 thread blocked,
> > waiting for some queue to be fed. Those thread are Acceptors waiting for
> an
> > incoming connection, AFAICS.
> >
> > More information and context could help...
> >
> >
> > Steve Johns wrote:
> >
> >> Hi the following is the full thread dump, can someone give any idea if
> >> mina
> >> itself problem or my program problem? Thanks a lot.
> >>
> >> "AnonymousIoService-8" daemon prio=6 tid=0x16dd9400 nid=0x1608 waiting
> on
> >> condit
> >> ion [0x1856f000..0x1856fd18]
> >>   java.lang.Thread.State: WAITING (parking)
> >>        at sun.misc.Unsafe.park(Native Method)
> >>        - parking to wait for  <0x088f69b0> (a
> >> java.util.concurrent.locks.Abstra
> >> ctQueuedSynchronizer$ConditionObject)
> >>        at java.util.concurrent.locks.LockSupport.park(Unknown Source)
> >>        at
> >> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
> >> .await(Unknown Source)
> >>        at java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
> >>        at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown
> Source)
> >>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
> >> Source)
> >>        at
> >> org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnabl
> >> e.java:51)
> >>        at java.lang.Thread.run(Unknown Source)
> >>
> >> "AnonymousIoService-7" daemon prio=6 tid=0x16dd8400 nid=0xe1c waiting on
> >> conditi
> >> on [0x1851f000..0x1851fd98]
> >>   java.lang.Thread.State: WAITING (parking)
> >>        at sun.misc.Unsafe.park(Native Method)
> >>        - parking to wait for  <0x088f69b0> (a
> >> java.util.concurrent.locks.Abstra
> >> ctQueuedSynchronizer$ConditionObject)
> >>        at java.util.concurrent.locks.LockSupport.park(Unknown Source)
> >>        at
> >> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
> >> .await(Unknown Source)
> >>        at java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
> >>        at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown
> Source)
> >>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
> >> Source)
> >>        at
> >> org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnabl
> >> e.java:51)
> >>        at java.lang.Thread.run(Unknown Source)
> >>
> >> "AnonymousIoService-6" daemon prio=6 tid=0x16cb8800 nid=0x650 waiting on
> >> conditi
> >> on [0x1826f000..0x1826fa18]
> >>   java.lang.Thread.State: WAITING (parking)
> >>        at sun.misc.Unsafe.park(Native Method)
> >>        - parking to wait for  <0x088f69b0> (a
> >> java.util.concurrent.locks.Abstra
> >> ctQueuedSynchronizer$ConditionObject)
> >>        at java.util.concurrent.locks.LockSupport.park(Unknown Source)
> >>        at
> >> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
> >> .await(Unknown Source)
> >>        at java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
> >>        at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown
> Source)
> >>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
> >> Source)
> >>        at
> >> org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnabl
> >> e.java:51)
> >>        at java.lang.Thread.run(Unknown Source)
> >>
> >> "AnonymousIoService-5" daemon prio=6 tid=0x16cb8400 nid=0x123c waiting
> on
> >> condit
> >> ion [0x180df000..0x180dfa98]
> >>   java.lang.Thread.State: WAITING (parking)
> >>        at sun.misc.Unsafe.park(Native Method)
> >>        - parking to wait for  <0x088f69b0> (a
> >> java.util.concurrent.locks.Abstra
> >> ctQueuedSynchronizer$ConditionObject)
> >>        at java.util.concurrent.locks.LockSupport.park(Unknown Source)
> >>        at
> >> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
> >> .await(Unknown Source)
> >>        at java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
> >>        at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown
> Source)
> >>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
> >> Source)
> >>        at
> >> org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnabl
> >> e.java:51)
> >>        at java.lang.Thread.run(Unknown Source)
> >>
> >> "AnonymousIoService-4" daemon prio=6 tid=0x16f75c00 nid=0x110c waiting
> on
> >> condit
> >> ion [0x1808f000..0x1808fb18]
> >>   java.lang.Thread.State: WAITING (parking)
> >>        at sun.misc.Unsafe.park(Native Method)
> >>        - parking to wait for  <0x088f69b0> (a
> >> java.util.concurrent.locks.Abstra
> >> ctQueuedSynchronizer$ConditionObject)
> >>        at java.util.concurrent.locks.LockSupport.park(Unknown Source)
> >>        at
> >> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
> >> .await(Unknown Source)
> >>        at java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
> >>        at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown
> Source)
> >>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
> >> Source)
> >>        at
> >> org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnabl
> >> e.java:51)
> >>        at java.lang.Thread.run(Unknown Source)
> >>
> >> "AnonymousIoService-3" daemon prio=6 tid=0x16cb7800 nid=0x179c waiting
> on
> >> condit
> >> ion [0x184cf000..0x184cfb98]
> >>   java.lang.Thread.State: WAITING (parking)
> >>        at sun.misc.Unsafe.park(Native Method)
> >>        - parking to wait for  <0x088f69b0> (a
> >> java.util.concurrent.locks.Abstra
> >> ctQueuedSynchronizer$ConditionObject)
> >>        at java.util.concurrent.locks.LockSupport.park(Unknown Source)
> >>        at
> >> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
> >> .await(Unknown Source)
> >>        at java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
> >>        at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown
> Source)
> >>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
> >> Source)
> >>        at
> >> org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnabl
> >> e.java:51)
> >>        at java.lang.Thread.run(Unknown Source)
> >>
> >> "AnonymousIoService-2" daemon prio=6 tid=0x16f13800 nid=0x13cc waiting
> on
> >> condit
> >> ion [0x1847f000..0x1847fc18]
> >>   java.lang.Thread.State: WAITING (parking)
> >>        at sun.misc.Unsafe.park(Native Method)
> >>        - parking to wait for  <0x088f69b0> (a
> >> java.util.concurrent.locks.Abstra
> >> ctQueuedSynchronizer$ConditionObject)
> >>        at java.util.concurrent.locks.LockSupport.park(Unknown Source)
> >>        at
> >> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
> >> .await(Unknown Source)
> >>        at java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
> >>        at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown
> Source)
> >>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
> >> Source)
> >>        at
> >> org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnabl
> >> e.java:51)
> >>        at java.lang.Thread.run(Unknown Source)
> >>
> >> "AnonymousIoService-1" daemon prio=6 tid=0x16f2bc00 nid=0x12ac waiting
> on
> >> condit
> >> ion [0x1842f000..0x1842fc98]
> >>   java.lang.Thread.State: WAITING (parking)
> >>        at sun.misc.Unsafe.park(Native Method)
> >>        - parking to wait for  <0x088f69b0> (a
> >> java.util.concurrent.locks.Abstra
> >> ctQueuedSynchronizer$ConditionObject)
> >>        at java.util.concurrent.locks.LockSupport.park(Unknown Source)
> >>        at
> >> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
> >> .await(Unknown Source)
> >>        at java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
> >>        at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown
> Source)
> >>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
> >> Source)
> >>        at
> >> org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnabl
> >> e.java:51)
> >>        at java.lang.Thread.run(Unknown Source)
> >>
> >> "DestroyJavaVM" prio=6 tid=0x002f5800 nid=0xd38 waiting on condition
> >> [0x00000000
> >> ..0x0089fd50]
> >>   java.lang.Thread.State: RUNNABLE
> >>
> >> "TimerQueue" daemon prio=6 tid=0x17438c00 nid=0x13bc in Object.wait()
> >> [0x1812f00
> >> 0..0x1812fd18]
> >>   java.lang.Thread.State: WAITING (on object monitor)
> >>        at java.lang.Object.wait(Native Method)
> >>        - waiting on <0x08a536b0> (a javax.swing.TimerQueue)
> >>        at javax.swing.TimerQueue.run(Unknown Source)
> >>        - locked <0x08a536b0> (a javax.swing.TimerQueue)
> >>        at java.lang.Thread.run(Unknown Source)
> >>
> >> "Timer-0" daemon prio=6 tid=0x176ce400 nid=0x1244 in Object.wait()
> >> [0x17fdf000..
> >> 0x17fdfb18]
> >>   java.lang.Thread.State: WAITING (on object monitor)
> >>        at java.lang.Object.wait(Native Method)
> >>        - waiting on <0x089b7b30> (a java.util.TaskQueue)
> >>        at java.lang.Object.wait(Object.java:485)
> >>        at java.util.TimerThread.mainLoop(Unknown Source)
> >>        - locked <0x089b7b30> (a java.util.TaskQueue)
> >>        at java.util.TimerThread.run(Unknown Source)
> >>
> >> "H2 Log Writer QUOTEIMAGE" daemon prio=6 tid=0x17657800 nid=0x1318
> >> runnable
> >> [0x1
> >> 7f8f000..0x17f8fb98]
> >>   java.lang.Thread.State: RUNNABLE
> >>        at java.lang.Thread.sleep(Native Method)
> >>        at org.h2.store.WriterThread.run(WriterThread.java:150)
> >>
> >> "AWT-EventQueue-0" prio=6 tid=0x175a7800 nid=0x132c runnable
> >> [0x17c5f000..0x17c5
> >> fd18]
> >>   java.lang.Thread.State: RUNNABLE
> >>        at sun.awt.windows.WDesktopProperties.getWindowsParameters(Native
> >> Method
> >> )
> >>        at sun.awt.windows.WDesktopProperties.diffPropertyChanges(Unknown
> >> Source
> >> )
> >>        - locked <0x08a22d88> (a sun.awt.windows.WDesktopProperties)
> >>        at sun.awt.windows.WDesktopProperties.access$100(Unknown Source)
> >>        at
> >> sun.awt.windows.WDesktopProperties$DiffPropertyChanges.run(Unknown So
> >> urce)
> >>        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
> >>        at java.awt.EventQueue.dispatchEvent(Unknown Source)
> >>        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown
> >> Source)
> >>        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown
> Source)
> >>        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown
> >> Source)
> >>        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
> >>        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
> >>        at java.awt.EventDispatchThread.run(Unknown Source)
> >>
> >> "AWT-Windows" daemon prio=6 tid=0x174d8c00 nid=0x1260 runnable
> >> [0x17b7f000..0x17
> >> b7fd98]
> >>   java.lang.Thread.State: RUNNABLE
> >>        at sun.awt.windows.WToolkit.eventLoop(Native Method)
> >>        at sun.awt.windows.WToolkit.run(Unknown Source)
> >>        at java.lang.Thread.run(Unknown Source)
> >>
> >> "AWT-Shutdown" prio=6 tid=0x174d8400 nid=0xb48 in Object.wait()
> >> [0x17b2f000..0x1
> >> 7b2fa18]
> >>   java.lang.Thread.State: WAITING (on object monitor)
> >>        at java.lang.Object.wait(Native Method)
> >>        - waiting on <0x08138600> (a java.lang.Object)
> >>        at java.lang.Object.wait(Object.java:485)
> >>        at sun.awt.AWTAutoShutdown.run(Unknown Source)
> >>        - locked <0x08138600> (a java.lang.Object)
> >>        at java.lang.Thread.run(Unknown Source)
> >>
> >> "Java2D Disposer" daemon prio=10 tid=0x174aa800 nid=0x116c in
> >> Object.wait()
> >> [0x1
> >> 7adf000..0x17adfa98]
> >>   java.lang.Thread.State: WAITING (on object monitor)
> >>        at java.lang.Object.wait(Native Method)
> >>        - waiting on <0x08975fe8> (a java.lang.ref.ReferenceQueue$Lock)
> >>        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
> >>        - locked <0x08975fe8> (a java.lang.ref.ReferenceQueue$Lock)
> >>        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
> >>        at sun.java2d.Disposer.run(Unknown Source)
> >>        at java.lang.Thread.run(Unknown Source)
> >>
> >> "RMI TCP Accept-0" daemon prio=6 tid=0x16e8b400 nid=0x16f0 runnable
> >> [0x1738f000.
> >> .0x1738fc18]
> >>   java.lang.Thread.State: RUNNABLE
> >>        at java.util.HashMap.newValueIterator(Unknown Source)
> >>        at java.util.HashMap$Values.iterator(Unknown Source)
> >>        at sun.rmi.transport.tcp.TCPEndpoint.allKnownTransports(Unknown
> >> Source)
> >>        - locked <0x0747eec8> (a java.util.HashMap)
> >>        at sun.rmi.transport.tcp.TCPEndpoint.shedConnectionCaches(Unknown
> >> Source
> >> )
> >>        at
> >> sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(Unkno
> >> wn Source)
> >>        at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(Unknown
> >> Source)
> >>        at java.lang.Thread.run(Unknown Source)
> >>
> >> "Low Memory Detector" daemon prio=6 tid=0x16cafc00 nid=0xc9c runnable
> >> [0x0000000
> >> 0..0x00000000]
> >>   java.lang.Thread.State: RUNNABLE
> >>
> >> "CompilerThread0" daemon prio=10 tid=0x16ca6000 nid=0xc50 waiting on
> >> condition [
> >> 0x00000000..0x1709f9c0]
> >>   java.lang.Thread.State: RUNNABLE
> >>
> >> "Attach Listener" daemon prio=10 tid=0x16ca5400 nid=0x12e4 runnable
> >> [0x00000000.
> >> .0x00000000]
> >>   java.lang.Thread.State: RUNNABLE
> >>
> >> "Signal Dispatcher" daemon prio=10 tid=0x16db0400 nid=0x169c runnable
> >> [0x0000000
> >> 0..0x00000000]
> >>   java.lang.Thread.State: RUNNABLE
> >>
> >> "Finalizer" daemon prio=8 tid=0x16c8a000 nid=0x10f4 in Object.wait()
> >> [0x16daf000
> >> ..0x16dafa98]
> >>   java.lang.Thread.State: WAITING (on object monitor)
> >>        at java.lang.Object.wait(Native Method)
> >>        - waiting on <0x08a368d0> (a java.lang.ref.ReferenceQueue$Lock)
> >>        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
> >>        - locked <0x08a368d0> (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=0x16c88c00 nid=0xab0 in
> >> Object.wait()
> >> [0x
> >> 16d5f000..0x16d5fb18]
> >>   java.lang.Thread.State: WAITING (on object monitor)
> >>        at java.lang.Object.wait(Native Method)
> >>        - waiting on <0x08254270> (a java.lang.ref.Reference$Lock)
> >>        at java.lang.Object.wait(Object.java:485)
> >>        at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
> >>        - locked <0x08254270> (a java.lang.ref.Reference$Lock)
> >>
> >> "VM Thread" prio=10 tid=0x16c84400 nid=0x16c8 runnable
> >>
> >> "GC task thread#0 (ParallelGC)" prio=6 tid=0x002fbc00 nid=0x131c
> runnable
> >>
> >> "GC task thread#1 (ParallelGC)" prio=6 tid=0x002fcc00 nid=0xe58 runnable
> >>
> >> "GC task thread#2 (ParallelGC)" prio=6 tid=0x002fdc00 nid=0x6e0 runnable
> >>
> >> "GC task thread#3 (ParallelGC)" prio=6 tid=0x002fec00 nid=0xe50 runnable
> >>
> >> "VM Periodic Task Thread" prio=10 tid=0x16ef9c00 nid=0xd5c waiting on
> >> condition
> >>
> >>
> >> JNI global references: 989
> >>
> >> [Full GC [PSYoungGen: 42112K->42112K(50112K)] [PSOldGen:
> >> 196607K->196607K(196608
> >> K)] 238719K->238719K(246720K) [PSPermGen: 16839K->16839K(17024K)],
> >> 1.1583541
> >> sec
> >> s] [Times: user=1.16 sys=0.00, real=1.16 secs]
> >> [Full GC [PSYoungGen: 42112K->42112K(50112K)] [PSOldGen:
> >> 196607K->196607K(196608
> >> K)] 238719K->238719K(246720K) [PSPermGen: 16839K->16839K(17024K)],
> >> 1.3595003
> >> sec
> >> s] [Times: user=1.31 sys=0.00, real=1.38 secs]
> >> Heap
> >>  PSYoungGen      total 50112K, used 42112K [0x12950000, 0x16950000,
> >> 0x16950000)
> >>  eden space 42112K, 100% used [0x12950000,0x15270000,0x15270000)
> >>  from space 8000K, 0% used [0x15270000,0x15270000,0x15a40000)
> >>  to   space 11840K, 0% used [0x15dc0000,0x15dc0000,0x16950000)
> >>  PSOldGen        total 196608K, used 196607K [0x06950000, 0x12950000,
> >> 0x12950000
> >> )
> >>  object space 196608K, 99% used [0x06950000,0x1294fff8,0x12950000)
> >>  PSPermGen       total 17024K, used 16839K [0x02950000, 0x039f0000,
> >> 0x06950000)
> >>  object space 17024K, 98% used [0x02950000,0x039c1e90,0x039f0000)
> >>
> >> [Full GC [PSYoungGen: 42112K->42112K(50112K)] [PSOldGen:
> >> 196607K->196607K(196608
> >> K)] 238719K->238719K(246720K) [PSPermGen: 16839K->16839K(17024K)],
> >> 1.1538969
> >> sec
> >> s] [Times: user=1.14 sys=0.00, real=1.16 secs]
> >> [Full GC [PSYoungGen: 42112K->42111K(50112K)] [PSOldGen:
> >> 196607K->196607K(196608
> >> K)] 238719K->238719K(246720K) [PSPermGen: 16839K->16839K(17024K)],
> >> 1.1473042
> >> sec
> >> s] [Times: user=1.16 sys=0.00, real=1.16 secs]
> >> [Full GC [PSYoungGen: 42112K->42112K(50112K)] [PSOldGen:
> >> 196607K->196607K(196608
> >> K)] 238719K->238719K(246720K) [PSPermGen: 16839K->16839K(17024K)],
> >> 1.4030792
> >> sec
> >> s] [Times: user=1.25 sys=0.02, real=1.41 secs]
> >> [Full GC
> >>
> >>
> >>
> >
> >
> > --
> > --
> > cordialement, regards,
> > Emmanuel Lécharny
> > www.iktek.com
> > directory.apache.org
> >
> >
> >
>

Reply via email to