Skip to content
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

Requests fail after losing and regaining internet connectivity #756

Open
Kiwifed0r opened this issue Nov 6, 2017 · 2 comments
Open

Requests fail after losing and regaining internet connectivity #756

Kiwifed0r opened this issue Nov 6, 2017 · 2 comments

Comments

@Kiwifed0r
Copy link
Contributor

Hi,

The problem can be reproduced with the following steps:

  1. I start the app, everything works fine, all queries go through
  2. I turn on airplane mode
  3. I turn off airplane mode, wifi reconnects
  4. No more queries go through, all I get is a couple of
    Request failed. Waiting 1310 milliseconds before attempt #1
    and later
    com.parse.ParseRequest$ParseRequestException: i/o failure at com.parse.ParseRequest.newTemporaryException(ParseRequest.java:291) at com.parse.ParseRequest$2.then(ParseRequest.java:145) at com.parse.ParseRequest$2.then(ParseRequest.java:139) at bolts.Task$15.run(Task.java:917) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:761) Caused by: java.net.SocketTimeoutException: timeout at okhttp3.internal.framed.FramedStream$StreamTimeout.newTimeoutException(FramedStream.java:600) at okhttp3.internal.framed.FramedStream$StreamTimeout.exitAndThrowIfTimedOut(FramedStream.java:608) at okhttp3.internal.framed.FramedStream.getResponseHeaders(FramedStream.java:142) at okhttp3.internal.http.Http2xStream.readResponseHeaders(Http2xStream.java:145) at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:53) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:109) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:124) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) at com.parse.ParsePlugins$1.intercept(ParsePlugins.java:123) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:170) at okhttp3.RealCall.execute(RealCall.java:60) at com.parse.ParseHttpClient.executeInternal(ParseHttpClient.java:84) at com.parse.ParseHttpClient.execute(ParseHttpClient.java:71) at com.parse.ParseRequest$3.then(ParseRequest.java:136) at com.parse.ParseRequest$3.then(ParseRequest.java:133) at bolts.Task$15.run(Task.java:917) at bolts.BoltsExecutors$ImmediateExecutor.execute(BoltsExecutors.java:105) at bolts.Task.completeAfterTask(Task.java:908) at bolts.Task.continueWithTask(Task.java:715) at bolts.Task.continueWithTask(Task.java:726) at bolts.Task$13.then(Task.java:818) at bolts.Task$13.then(Task.java:806) at bolts.Task$15.run(Task.java:917)  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)  at java.lang.Thread.run(Thread.java:761) 

I'm having this issue on a Nexus 4 running Android 7.1.2. I tried this on different devices and different Android versions. I could't reproduce the issue on a Samsung Galaxy S6 edge running Android 7.0.

This only occurs when using https. When I use http, and follow the steps mentioned above, I don't get the errors and everything works fine on the Nexus 4.

Any ideas what yould cause this issue?
Thanks!

@Kiwifed0r
Copy link
Contributor Author

It seems like the issue is caused by an issue in the okhttp library and will be fixed in an upcoming release. For now, there is a workaround which should be fine.
See square/okhttp#3146

@mmimeault
Copy link
Contributor

Could you try with the latest okhttp version. They seem to have fixed the issue you pointed.Not sure if it was totally related to your problem but they seem to have close the issue you linked.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants