Apologies to Ron for double-posting both here and on the support ticket, but I want to
give the other kind souls who have been helping me out an update.
Just tried with store-bought 1.4.6. Exact same problem. Lots of these:
| 2007-06-27 16:19:37,799 71584 ERROR
[org.jboss.remoting.transport.socket.SocketServerInvoker] (SocketServerInvoker#0-3873:)
Failed to accept socket connection
| java.lang.reflect.InvocationTargetException
| at sun.reflect.GeneratedConstructorAccessor53.newInstance(Unknown Source)
| at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
| at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
| at
org.jboss.remoting.transport.socket.ServerThread.createServerSocket(ServerThread.java:175)
| at
org.jboss.remoting.transport.socket.ServerThread.wakeup(ServerThread.java:216)
| at
org.jboss.remoting.transport.socket.SocketServerInvoker.processInvocation(SocketServerInvoker.java:488)
| at
org.jboss.remoting.transport.socket.SocketServerInvoker.run(SocketServerInvoker.java:412)
| at java.lang.Thread.run(Thread.java:619)
| Caused by: java.io.IOException: Mismatch version of JBossSerialization signature
| at
org.jboss.serial.io.JBossObjectInputStream.checkSignature(JBossObjectInputStream.java:113)
| at ...
|
Followed by one of these:
| 2007-06-27 16:19:37,800 71585 DEBUG [org.jboss.remoting.transport.socket.ServerThread]
(SocketServerInvokerThread-68.142.219.95-2:) Exiting run on exception
| java.lang.InterruptedException
| at java.lang.Object.wait(Native Method)
| at java.lang.Object.wait(Object.java:485)
| at
org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:282)
|
(the missed notify)
and then deadlock. The deadlocked threads:
One of these:
| Thread: SocketServerInvoker#0-3873 : priority:5, demon:false, threadId:23,
threadState:WAITING, threadLockName:org.jboss.remoting.transport.socket.LRUPool@4f2076
|
| java.lang.Object.wait(Native Method)
| java.lang.Object.wait(Object.java:485)
|
org.jboss.remoting.transport.socket.SocketServerInvoker.processInvocation(SocketServerInvoker.java:460)
|
org.jboss.remoting.transport.socket.SocketServerInvoker.run(SocketServerInvoker.java:412)
| java.lang.Thread.run(Thread.java:619)
|
and several of these:
| Thread: SocketServerInvokerThread-68.142.219.226-0 : priority:5, demon:false,
threadId:79, threadState:WAITING,
threadLockName:org.jboss.remoting.transport.socket.ServerThread@134ab9b
|
| java.lang.Object.wait(Native Method)
| java.lang.Object.wait(Object.java:485)
| org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:282)
|
The call to ServerThread.wakeup is throwing an exception, caused by that "mismatch
version of JBossSerialization signature" error. Assuming that we can track down the
root cause of that error, it's still going to be possible for a socket timeout to
occur here, so we have to be prepared for this failure. When wakeup throws the exception,
it never makes it to the end of the method to invoke notify() to wake up the waiting
ServerThread thread. So the ServerThreads just continue to disappear from the threadpool
every time wakeup() throws an exception before it gets to notify(), until eventually, the
threadpool is empty, and the SocketServerInvoker just sits and waits forever (deadlock).
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4058483#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...