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