Funny, looks like https://issues.apache.org/jira/browse/XMLRPC-168
Checkout and build the latest version from SVN. On Sat, May 9, 2009 at 11:21 PM, Lars Schnoor <lars.schn...@ifad.dk> wrote: > Hi Alan > Now I have been able to recreate the problem and can post the stack traces. > I have actually one client and one server on each machine, but in the > example below the call from the client to the server does not return. > *On the client side:* > > /"XML-RPC-1" prio=6 tid=0x02bf1c00 nid=0xd70 in Object.wait() > [0x03a7f000..0x03a7fd14] > java.lang.Thread.State: WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > at java.lang.Object.wait(Object.java:485) > at org.apache.xmlrpc.util.ThreadPool$Poolable$1.run(ThreadPool.java:60) > - locked <0x22f506b8> (a org.apache.xmlrpc.util.ThreadPool$Poolable$1) > > Locked ownable synchronizers: > - None > > "XML-RPC-0" prio=6 tid=0x02c8a400 nid=0xb00 in Object.wait() > [0x036df000..0x036dfb14] > java.lang.Thread.State: WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > at java.lang.Object.wait(Object.java:485) > at org.apache.xmlrpc.util.ThreadPool$Poolable$1.run(ThreadPool.java:60) > - locked <0x22f42870> (a org.apache.xmlrpc.util.ThreadPool$Poolable$1) > > Locked ownable synchronizers: > - None > > "XML-RPC Weblistener" prio=6 tid=0x03008800 nid=0x798 runnable > [0x037df000..0x037dfb94] > java.lang.Thread.State: RUNNABLE > at java.net.PlainSocketImpl.socketAccept(Native Method) > at java.net.PlainSocketImpl.accept(Unknown Source) > - locked <0x22f13ec8> (a java.net.SocksSocketImpl) > at java.net.ServerSocket.implAccept(Unknown Source) > at java.net.ServerSocket.accept(Unknown Source) > at org.apache.xmlrpc.webserver.WebServer.run(WebServer.java:326) > at java.lang.Thread.run(Unknown Source) > > Locked ownable synchronizers: > - None/ > > *On the server side:* > > /"XML-RPC-2" prio=6 tid=0x030e9400 nid=0xe64 waiting for monitor entry > [0x035af000..0x035afa94] > java.lang.Thread.State: BLOCKED (on object monitor) > at org.apache.xmlrpc.util.ThreadPool$Poolable.getTask(ThreadPool.java:99) > - waiting to lock <0x09293ac0> (a > org.apache.xmlrpc.util.ThreadPool$Poolable) > at > org.apache.xmlrpc.util.ThreadPool$Poolable.access$100(ThreadPool.java:47) > at org.apache.xmlrpc.util.ThreadPool$Poolable$1.run(ThreadPool.java:59) > - locked <0x09293a50> (a org.apache.xmlrpc.util.ThreadPool$Poolable$1) > > Locked ownable synchronizers: > - None > > "XML-RPC-1" prio=6 tid=0x02d2f000 nid=0x26c in Object.wait() > [0x03baf000..0x03bafb14] > java.lang.Thread.State: WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > - waiting on <0x0928f800> (a org.apache.xmlrpc.util.ThreadPool$Poolable$1) > at java.lang.Object.wait(Object.java:485) > at org.apache.xmlrpc.util.ThreadPool$Poolable$1.run(ThreadPool.java:60) > - locked <0x0928f800> (a org.apache.xmlrpc.util.ThreadPool$Poolable$1) > > Locked ownable synchronizers: > - None > > "XML-RPC-0" prio=6 tid=0x02d3c800 nid=0x3d0 in Object.wait() > [0x03b5f000..0x03b5fb94] > java.lang.Thread.State: WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > - waiting on <0x0928e1e0> (a org.apache.xmlrpc.util.ThreadPool$Poolable$1) > at java.lang.Object.wait(Object.java:485) > at org.apache.xmlrpc.util.ThreadPool$Poolable$1.run(ThreadPool.java:60) > - locked <0x0928e1e0> (a org.apache.xmlrpc.util.ThreadPool$Poolable$1) > > Locked ownable synchronizers: > - None > > "XML-RPC Weblistener" prio=6 tid=0x0309b400 nid=0x584 waiting for monitor > entry [0x0340f000..0x0340fb94] > java.lang.Thread.State: BLOCKED (on object monitor) > at org.apache.xmlrpc.util.ThreadPool$Poolable.start(ThreadPool.java:107) > - waiting to lock <0x09293a50> (a > org.apache.xmlrpc.util.ThreadPool$Poolable$1) > - locked <0x09293ac0> (a org.apache.xmlrpc.util.ThreadPool$Poolable) > at org.apache.xmlrpc.util.ThreadPool.startTask(ThreadPool.java:168) > - locked <0x091a3c60> (a org.apache.xmlrpc.util.ThreadPool) > at org.apache.xmlrpc.webserver.WebServer.run(WebServer.java:338) > at java.lang.Thread.run(Unknown Source) > > Locked ownable synchronizers: > - None > > > Found one Java-level deadlock: > ============================= > "XML-RPC-2": > waiting to lock monitor 0x030fd5bc (object 0x09293ac0, a > org.apache.xmlrpc.util.ThreadPool$Poolable), > which is held by "XML-RPC Weblistener" > "XML-RPC Weblistener": > waiting to lock monitor 0x030a6134 (object 0x09293a50, a > org.apache.xmlrpc.util.ThreadPool$Poolable$1), > which is held by "XML-RPC-2" > > Java stack information for the threads listed above: > =================================================== > "XML-RPC-2": > at org.apache.xmlrpc.util.ThreadPool$Poolable.getTask(ThreadPool.java:99) > - waiting to lock <0x09293ac0> (a > org.apache.xmlrpc.util.ThreadPool$Poolable) > at > org.apache.xmlrpc.util.ThreadPool$Poolable.access$100(ThreadPool.java:47) > at org.apache.xmlrpc.util.ThreadPool$Poolable$1.run(ThreadPool.java:59) > - locked <0x09293a50> (a org.apache.xmlrpc.util.ThreadPool$Poolable$1) > "XML-RPC Weblistener": > at org.apache.xmlrpc.util.ThreadPool$Poolable.start(ThreadPool.java:107) > - waiting to lock <0x09293a50> (a > org.apache.xmlrpc.util.ThreadPool$Poolable$1) > - locked <0x09293ac0> (a org.apache.xmlrpc.util.ThreadPool$Poolable) > at org.apache.xmlrpc.util.ThreadPool.startTask(ThreadPool.java:168) > - locked <0x091a3c60> (a org.apache.xmlrpc.util.ThreadPool) > at org.apache.xmlrpc.webserver.WebServer.run(WebServer.java:338) > at java.lang.Thread.run(Unknown Source) > > Found 1 deadlock./ > > Lars > > Alan Burlison wrote: >> >> Lars Schnoor wrote: >> >>> Hi Alan >>> What is jstack and how do I run it? >> >> It is a Java utility that allows you to see what the JVM is doing, and it >> comes as part of the standard install on all platforms except Windows. You >> should find it in your Java bin directory, e.g. /usr/java/bin. >> >> You should also see if there are any deadlocks reported at the end of the >> output. >> >> See http://java.sun.com/javase/6/docs/technotes/tools/share/jstack.html >> > -- Don't trust a government that doesn't trust you.