hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Patrick Lightbody <pligh...@gmail.com>
Subject Lockup in XFire
Date Mon, 07 Aug 2006 19:29:17 GMT
I've tried using XFire 1.1.1 and 1.2-RC, combined with HttpClient 3.0  
and 3.1-alpha1. I get the same result, outlined below, which causes a  
complete lockup of a thread. I can't figure out what would cause this.

When making a call via XFire (ClientService.getAppLog()), the current  
thread locks up just after printing the following out in the logs:

org.apache.commons.httpclient.HttpMethodBase writeRequest
100 (continue) read timeout. Resume sending the request

I see that this log comes from an InterruptedIOException here:


The stack dump of the locked thread is:

"Thread-62" daemon prio=1 tid=0x082602c0 nid=0x51ca runnable  
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:129)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java: 
        at java.io.BufferedInputStream.read(BufferedInputStream.java: 
        - locked <0x830328c8> (a java.io.BufferedInputStream)
        at org.apache.commons.httpclient.HttpParser.readRawLine 
        at org.apache.commons.httpclient.HttpParser.readLine 
        at org.apache.commons.httpclient.HttpConnection.readLine 
        at org.apache.commons.httpclient.HttpMethodBase.readStatusLine 
        at org.apache.commons.httpclient.HttpMethodBase.readResponse 
        at org.apache.commons.httpclient.HttpMethodBase.execute 
        at org.apache.commons.httpclient.HttpClient.executeMethod 
        at org.codehaus.xfire.transport.http.HttpChannel.sendViaClient 
        at org.codehaus.xfire.transport.http.HttpChannel.send 
        at org.codehaus.xfire.handler.OutMessageSender.invoke 
        at org.codehaus.xfire.handler.HandlerPipeline.invoke 
        at org.codehaus.xfire.client.Invocation.invoke 
        at org.codehaus.xfire.client.Client.invoke(Client.java:335)
        at org.codehaus.xfire.client.XFireProxy.handleRequest 
        at org.codehaus.xfire.client.XFireProxy.invoke 
        at $Proxy5.getAppLog(Unknown Source)
        at com.hostedqa.model.TestContextImpl.dispose 
        at com.hostedqa.model.Suite.playback(Suite.java:85)
        at com.hostedqa.service.PlaybackService.runTest 
        at com.hostedqa.service.PlaybackService.playSuite 
        at com.hostedqa.action.project.suite.PlayAction$1.run 
        at java.lang.Thread.run(Thread.java:595)

What's very weird is that I am able to drop a JSP (test.jsp) that  
makes the exact same call and it completes just fine. This tells me  
that there is something environmental about _this_ thread that causes  
HttpClient to do this. The call alone is not the issue.

Also, I might add that the XFire call never makes it to the other end  
(ClientServiceImpl), as I have a print line there that never gets  
invoked. I ran a stack dump on the other side as well, and nothing  
stood out (though it is possible part of the request made it through  
to XFire's Servlet, and then broke and was no longer in the active  
thread dump by the time I forced the dump).

Finally, this request is running over HTTP. I'd really like to figure  

1) What that log from HttpMethodBase.writeRequest() is all about
2) Why there would be a perpetual "pause" in the native method, but  
no actual visible deadlock.
3) How to fix this :)


Patrick Lightbody
Autoriginate, Inc.

"Intelligent testing made convenient"

To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpclient-user-help@jakarta.apache.org

View raw message