[ 
https://issues.apache.org/jira/browse/HTTPCORE-294?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Geir Harald Hansen updated HTTPCORE-294:
----------------------------------------

    Attachment: threaddump.txt
                Test.java

Attached example code shows how the deadlock is triggered. Attached thread dump 
shows the two threads locked.
                
> Deadlock between Cancellable#cancel() and HttpAsyncExchange#submitResponse()
> ----------------------------------------------------------------------------
>
>                 Key: HTTPCORE-294
>                 URL: https://issues.apache.org/jira/browse/HTTPCORE-294
>             Project: HttpComponents HttpCore
>          Issue Type: Bug
>          Components: HttpCore NIO
>    Affects Versions: 4.2-beta1
>            Reporter: Geir Harald Hansen
>         Attachments: Test.java, threaddump.txt
>
>
> I leave postponed responses for a separate thread to handle. When 
> Cancellable#cancel() is invoked I signal this background thread and wait for 
> it to signal back before returning true or false from cancel() depending on 
> whether the response was cancelled or already sent. I'm assuming it is not OK 
> to always return true immediately and attempt in the background to signal 
> another thread to tell it to not submit a response, which it may still do if 
> it doesn't get the signal in time.
> My program deadlocks if the background thread tries to submit a response 
> after Cancellable#cancel() has been invoked. The IOReactor worker thread 
> (inside cancel()) waits on the background thread, and the background thread 
> is trying to submit a response, apparently needing a lock held by the 
> IOReactor worker thread.
> Not sure if this is a bug or if I am "doing it wrong". But I think this is a 
> trap many will fall in, so it would be best if this problem could be avoided.

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