-
Notifications
You must be signed in to change notification settings - Fork 9.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Http2 Connection becomes stalled after interrupt during call.execute #7016
Comments
Relates to #3146 |
It looks like this is meant to be covered
|
It seems like it could be related to interrupts vs close. This appears to fix the MediaTest.
I had thought that an interrupt was meant to cancel the call, but it doesn't seem like it does. |
I assume it's the leaked responses that don't get closed, but without being consumed are effectively blocking the entire connection. |
Also tangentially relevant https://github.com/coil-kt/coil/blob/main/CHANGELOG.md#200-alpha01---october-11-2021
|
Gaaahhh!!! The fix above calling |
I guess we can't even know the state of the Connection, maybe partially written output, so we'd need to close the whole connection. As I can do that externally to fix this, no point adding here. I guess the optimal change is to use enqueue instead of execute, avoid this failure condition, and deal with the interrupt later during reading the response.
|
Added some simple flags to the repro https://github.com/square/okhttp/pull/7014/files
|
I think this is covered by
|
Reproduction in https://github.com/square/okhttp/pull/7014/files
With 1 Good thread - downloads work.
With 1 Good thread + 9 Cancelling (interrupt) threads - Download gets stuck, and other threads get SocketTimeout on following request
With 1 Good thread + 9 cancel + Interceptor setting noNewExchanges - Overall systems stays healthy, but download stays stuck.
The text was updated successfully, but these errors were encountered: