okhttp: okhttp 3.4.1will go endless loop,when there is a IOException("shutdown")
here is how it go endless loop: in file RetryAndFollowUpInterceptor.java
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
streamAllocation = new StreamAllocation(
client.connectionPool(), createAddress(request.url()));
int followUpCount = 0;
Response priorResponse = null;
while (true) {
if (canceled) {
streamAllocation.release();
throw new IOException("Canceled");
}
Response response = null;
boolean releaseConnection = true;
try {
response = ((RealInterceptorChain) chain).proceed(request, streamAllocation, null, null);
releaseConnection = false;
} catch (RouteException e) {
// The attempt to connect via a route failed. The request will not have been sent.
if (!recover(e.getLastConnectException(), true, request)) throw e.getLastConnectException();
releaseConnection = false;
continue;
} catch (IOException e) {
// An attempt to communicate with a server failed. The request may have been sent.
if (!recover(e, false, request)) throw e;
releaseConnection = false;
continue;
} finally {
// We're throwing an unchecked exception. Release any resources.
if (releaseConnection) {
streamAllocation.streamFailed(null);
streamAllocation.release();
}
}
when there is a IOException(“shutdown”) when execute
response = ((RealInterceptorChain) chain).proceed(request, streamAllocation, null, null);
it will go into catch block,and judge if can recover,recover(e, false, request)
unfortunately recover() return true,so it will continue and go endless loop
About this issue
- Original URL
- State: closed
- Created 8 years ago
- Comments: 20 (8 by maintainers)
Commits related to this issue
- Improve management of HTTP/2 connections that are shutdown. Closes: https://github.com/square/okhttp/issues/2756 — committed to square/okhttp by dave-r12 8 years ago
- Improve management of HTTP/2 connections that are shutdown. Closes: https://github.com/square/okhttp/issues/2756 — committed to square/okhttp by dave-r12 8 years ago
- Improve management of HTTP/2 connections that are shutdown. Closes: https://github.com/square/okhttp/issues/2756 — committed to square/okhttp by dave-r12 8 years ago
- Improve management of HTTP/2 connections that are shutdown. Closes: https://github.com/square/okhttp/issues/2756 — committed to square/okhttp by dave-r12 8 years ago
- Improve management of HTTP/2 connections that are shutdown. Closes: https://github.com/square/okhttp/issues/2756 — committed to square/okhttp by dave-r12 8 years ago
- Improve management of HTTP/2 connections that are shutdown. Closes: https://github.com/square/okhttp/issues/2756 — committed to square/okhttp by dave-r12 8 years ago
- Improve management of HTTP/2 connections that are shutdown. Closes: https://github.com/square/okhttp/issues/2756 — committed to square/okhttp by dave-r12 8 years ago
- Improve management of HTTP/2 connections that are shutdown. Closes: https://github.com/square/okhttp/issues/2756 — committed to square/okhttp by dave-r12 8 years ago
- Improve management of HTTP/2 connections that are shutdown. Closes: https://github.com/square/okhttp/issues/2756 — committed to square/okhttp by dave-r12 8 years ago
- Improve management of HTTP/2 connections that are shutdown. Closes: https://github.com/square/okhttp/issues/2756 — committed to square/okhttp by dave-r12 8 years ago
- Improve management of HTTP/2 connections that are shutdown. Closes: https://github.com/square/okhttp/issues/2756 — committed to square/okhttp by dave-r12 8 years ago
- Improve management of HTTP/2 connections that are shutdown. Closes: https://github.com/square/okhttp/issues/2756 — committed to square/okhttp by dave-r12 8 years ago
- Improve management of HTTP/2 connections that are shutdown. Closes: https://github.com/square/okhttp/issues/2756 — committed to square/okhttp by dave-r12 8 years ago
- Improve management of HTTP/2 connections that are shutdown. Closes: https://github.com/square/okhttp/issues/2756 — committed to square/okhttp by dave-r12 8 years ago
- Improve management of HTTP/2 connections that are shutdown. Closes: https://github.com/square/okhttp/issues/2756 — committed to square/okhttp by dave-r12 8 years ago
- Improve management of HTTP/2 connections that are shutdown. Closes: https://github.com/square/okhttp/issues/2756 — committed to square/okhttp by dave-r12 8 years ago
- Improve management of HTTP/2 connections that are shutdown. Closes: https://github.com/square/okhttp/issues/2756 — committed to square/okhttp by dave-r12 8 years ago
- Tests for management of HTTP/2 connections that are shutdown. See: https://github.com/square/okhttp/issues/2756 — committed to square/okhttp by dave-r12 8 years ago
- Tests for management of HTTP/2 connections that are shutdown. See: https://github.com/square/okhttp/issues/2756 — committed to square/okhttp by dave-r12 8 years ago
- okhttp3 3.4.1 had a bug which was fixed in 3.4.2 See: https://github.com/square/okhttp/issues/2756 — committed to xiaodong-xie/sift-java by deleted user 6 years ago
Released as 3.4.2.
@fabioCollini yup, although that snippet is an older version. I’m working on a fix.