[ 
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]

Reply via email to