streetcomplete / StreetComplete

Easy to use OpenStreetMap editor for Android
https://streetcomplete.app
GNU General Public License v3.0
3.9k stars 357 forks source link

Horrifically slow internet can cause crash "avax.net.ssl.SSLException: Read error: ssl=0x708cd007c8: I/O error during system call, Connection reset by peer" #2912

Closed matkoniecz closed 3 years ago

matkoniecz commented 3 years ago

How to Reproduce Run StreetComplete on connection that kind of works but horrifically slow (uploading answers barely works, downloading basically no - small areas can be sometimes downloaded in Vespucci but not often, opening webpages is unfeasible)

Versions affected Unmodified v32

It seems to me that basically nothing can be done here? Just wrap it and treat as a variant of timeout rather than ask user to submit an email? (I submitted it to myself)

de.westnordost.osmapi.common.errors.OsmConnectionException:
javax.net.ssl.SSLException: Read error: ssl=0x708cd007c8: I/O error during
system call, Connection reset by peer
at de.westnordost.osmapi.OsmConnection.makeRequest(OsmConnection.java:202)
at de.westnordost.osmapi.OsmConnection.makeRequest(OsmConnection.java:148)
at de.westnordost.osmapi.user.UserApi.get(UserApi.java:44)
at
de.westnordost.streetcomplete.data.osmnotes.AvatarsDownloader.download(AvatarsDownloader.kt:27)
at
de.westnordost.streetcomplete.data.osmnotes.AvatarsInNotesUpdater.onUpdated(AvatarsInNotesUpdater.kt:12)
at
de.westnordost.streetcomplete.data.osmnotes.NoteController.onUpdated(NoteController.kt:107)
at
de.westnordost.streetcomplete.data.osmnotes.NoteController.putAllForBBox(NoteController.kt:51)
at
de.westnordost.streetcomplete.data.osmnotes.NotesDownloader$download$2.invokeSuspend(NotesDownloader.kt:32)
at
kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at
kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at
kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at
kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at
kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
Caused by: javax.net.ssl.SSLException: Read error: ssl=0x708cd007c8: I/O
error during system call, Connection reset by peer
at com.android.org.conscrypt.NativeCrypto.SSL_read(Native Method)
at com.android.org.conscrypt.NativeSsl.read(NativeSsl.java:411)
at
com.android.org.conscrypt.ConscryptFileDescriptorSocket$SSLInputStream.read(ConscryptFileDescriptorSocket.java:549)
at com.android.okhttp.okio.Okio$2.read(Okio.java:138)
at com.android.okhttp.okio.AsyncTimeout$2.read(AsyncTimeout.java:213)
at
com.android.okhttp.okio.RealBufferedSource.indexOf(RealBufferedSource.java:307)
at
com.android.okhttp.okio.RealBufferedSource.indexOf(RealBufferedSource.java:301)
at
com.android.okhttp.okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:197)
at
com.android.okhttp.internal.http.Http1xStream.readResponse(Http1xStream.java:188)
at
com.android.okhttp.internal.http.Http1xStream.readResponseHeaders(Http1xStream.java:129)
at
com.android.okhttp.internal.http.HttpEngine.readNetworkResponse(HttpEngine.java:750)
at
com.android.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:622)
at
com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:475)
at
com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:411)
at
com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:542)
at
com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseCode(DelegatingHttpsURLConnection.java:106)
at
com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:30)
at
de.westnordost.osmapi.OsmConnection.handleResponseCode(OsmConnection.java:341)
at de.westnordost.osmapi.OsmConnection.makeRequest(OsmConnection.java:195)
... 13 more
matkoniecz commented 3 years ago

08f50c8ae may be related and maybe something very similar needs to be done (unless that part was also rewritten since that time)

FloEdelmann commented 3 years ago

See also https://github.com/streetcomplete/StreetComplete/blob/v32.0/app/src/main/java/de/westnordost/streetcomplete/data/osm/mapdata/MapDataApiImpl.kt#L109-L126