Hi,

I've just had another long debugging session,
and I think I'm onto something...

Using packet sniffing on the loopback interface
I discovered that the hanging client has sent a
request to the jBoss webserver at port 8083, but
not received a reply. In fact jBoss didn't even
read the request - it remained stored in OS kernel
buffers.
After some more debugging I discovered that the
webserver had not even done an accept() for the
connection that the client already had sent a
http request on.
Looks like the Java VM on Linux does the accept()
syscall long before accept() on the serversocket!

So why does the webserver never accept() the
connection?
Looks like no thread for doing the accept().
When debugging the webserver threadpool, I have
discovered a problem that can end up in a situation
where the same thread is entered multible times in
the stack of idle threads.
A quick-and-dirty fix seems to make the client hang
go away.

With a bit of luck I'll be ready to commit a fix
for this today or tomorrow.


Best Regards,

Ole Husgaard.


marc fleury wrote:
> 
> |Rickard may have a problem looking at it, if he does
> |not have it at his host. But IMO it takes someone as
> |good as Rickard to solve this...
> 
> yep,
> 
> this is for kiddo,
> 
> we need your magic
> 
> work it gad-damit!
> 
> work it
> 
> marc
> 
> |I have it constantly, so please just ask me whatever I
> |can do to get more information.
> |
> |
> |Best Regards,
> |
> |Ole Husgaard.
> |
> |

Reply via email to