hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gonzalo Bermúdez (JIRA) <j...@apache.org>
Subject [jira] [Created] (HTTPCLIENT-1815) CLONE - Request 'hangs' on invalid response from server
Date Thu, 16 Feb 2017 17:58:42 GMT
Gonzalo Bermúdez created HTTPCLIENT-1815:
--------------------------------------------

             Summary: CLONE - Request 'hangs' on invalid response from server
                 Key: HTTPCLIENT-1815
                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1815
             Project: HttpComponents HttpClient
          Issue Type: Bug
          Components: Fluent HC, HttpClient (classic)
         Environment: Java 8
Running test with either Maven or IntelliJ.
            Reporter: Gonzalo Bermúdez
         Attachments: TestMalformedServerResponse.java

When using the fluent api to do a request and the response of the previous request was status
NoContent, but (!) the server did send some content anyway, then the next request is blocked
for a long time. No response is ever returned. Eventually some timeout will unblock the thread,
but the request has failed.

To reproduce this issue:
- create a server which returns a NoContent with some text body.
- do a first request
- do a second request. This request hangs/blocks the thread for long time.

We're using Fluent API to easily unit test our rest api. In a test class where a test was
doing multiple requests, the first test would pass, but the second test would stall and eventually
fail. Individually the tests were passing. I could not find any issue on the server side,
so I tried another http client (Ning) which seemed to fix the issue. After rewriting the test
to use Ning instead of HttpClient, the tests were successful, but when I changed it to reuse
the same AsyncHttpClient, I got the same issue. However, because Ning does not block but throws
an exception, I was finally able to find the issue which caused the problem: an endpoint returning
a NoContent status, but with some text body.

Even though this is a server issue, the httpclient should not block the thread for such a
long time and also return a proper error so this kind of issues so the cause is easier to
track down. Now, if I would not have used Ning, I would not have found the issue.

The problem occurred when using Fluent Api, but I assume to cause for the thread to block
and not return a proper error is in the HttpClient component.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org


Mime
View raw message