[
https://issues.apache.org/jira/browse/HTTPCORE-291?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13200276#comment-13200276
]
Geir Harald Hansen commented on HTTPCORE-291:
---------------------------------------------
4.2-beta1-RC2 doesn't react when I terminate a connection (Cancellable is not
cancelled). It worked fine in the alpha3 snapshot.
Also, when using alpha3, I had problems with deadlocks. When
Cancellable#cancel() is invoked I would wait on another thread that was
responsible for the cancellables while it was calling
HttpAsyncExchange#submitResponse(). This caused a deadlock - I assume those two
threads were waiting for each other. I think this is likely to be a problem for
others as well. I "solved" it by having the thread that handles cancellables
remove it asynchronously, while cancel() returns always true. Haven't checked
yet what bad effects always returning true from cancel() might have.
> Out-of-order responses to pipelined requests
> --------------------------------------------
>
> Key: HTTPCORE-291
> URL: https://issues.apache.org/jira/browse/HTTPCORE-291
> Project: HttpComponents HttpCore
> Issue Type: Bug
> Components: HttpCore NIO
> Reporter: Geir Harald Hansen
> Fix For: 4.2-beta1
>
> Attachments: Test.java, testrun.txt
>
>
> I am having a problem with the latest HttpCore NIO from the Subversion
> repository (revision 1234228). I have not tested this on earlier versions.
> I am observing two problems, but they stem from the same underlying issue -
> that after a response is delayed, processing of subsequent pipelined requests
> on the same socket continues immediately.
> Problem 1: If the response to your first request is delayed, but not the
> second, they are delivered out of order.
> Problem 2: If a request has a body (entity) then right after processing that
> request and delaying its response, there is a response on the wire ("400 Bad
> Request") and the connection is terminated. When this happens none of the
> delayed responses are cancelled, that is Cancellable#cancel() is never called.
> I will attach example source code, and an example of running telnet against
> the program, to show what is happening. There is first a request that is
> delayed and never gets a response. The second request gets a response
> immediately, out of order. The third request (a POST with body) also has its
> response delayed. But then there is a 400 bad request response and the
> connection is severed. The two delayed responses are not cancelled.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]