I also get issues with the ListView (using the latest version, 17.2.0.39) when images are inside the control. If I flick the list so that is scrolls quickly I get the following errors appearing in my output and the image no longer shows to the user.
It looks like its possible android is killing the socket because it's killing a thread due some recycle action - possibly due to the scroll speed its still recycling the cell which left the users view and so it's cancelling the image load but by the time this runs it's cancelling the action of the "real" cell, the one the user should now see?
[0:] Image Loading: Error getting stream for https://test-androweb.azureedge.net/tenant/..........-d2f1-42d3-a42a-c6dcc550f74b/images/product/248.jpg: System.OperationCanceledException: The operation was canceled.
at System.Threading.CancellationToken.ThrowOperationCanceledException () [0x00010] in <ff07eae8184a40a08e79049bbcb31a0e>:0
at System.Threading.CancellationToken.ThrowIfCancellationRequested () [0x00008] in <ff07eae8184a40a08e79049bbcb31a0e>:0
at Xamarin.Android.Net.AndroidClientHandler.DoProcessRequest (System.Net.Http.HttpRequestMessage request, Java.Net.URL javaUrl, Java.Net.HttpURLConnection httpConnection, System.Threading.CancellationToken cancellationToken, Xamarin.Android.Net.AndroidClientHandler+RequestRedirectionState redirectState) [0x0042f] in <a2f1be6565a84d5393d8f9efa19f479b>:0
at Xamarin.Android.Net.AndroidClientHandler.SendAsync (System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) [0x002be] in <a2f1be6565a84d5393d8f9efa19f479b>:0
at System.Net.Http.HttpClient.SendAsyncWorker (System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpCompletionOption completionOption, System.Threading.CancellationToken cancellationToken) [0x000e8] in <bded3dbf44d946c7ba5980c587dca714>:0
at Xamarin.Forms.Forms+AndroidPlatformServices.GetStreamAsync (System.Uri uri, System.Threading.CancellationToken cancellationToken) [0x0003b] in D:\a\1\s\Xamarin.Forms.Platform.Android\Forms.cs:646
at Xamarin.Forms.UriImageSource.GetStreamAsyncUnchecked (System.String key, System.Uri uri, System.Threading.CancellationToken cancellationToken) [0x001f7] in D:\a\1\s\Xamarin.Forms.Core\UriImageSource.cs:176
[0:] Image Loading: Error getting stream for https://test-androweb.azureedge.net/tenant/d3626aa5-d2f1-42d3-a42a-c6dcc550f74b/images/product/92.jpg: Java.Net.SocketException: Socket closed
at Java.Interop.JniEnvironment+InstanceMethods.CallIntMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x00069] in <23e57773773243b6853e76fc01957c33>:0
at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeVirtualInt32Method (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x0002a] in <23e57773773243b6853e76fc01957c33>:0
at Java.Net.HttpURLConnection.get_ResponseCode () [0x0000a] in <a2f1be6565a84d5393d8f9efa19f479b>:0
at Xamarin.Android.Net.AndroidClientHandler+<>c__DisplayClass46_0.<DoProcessRequest>b__1 () [0x00000] in <a2f1be6565a84d5393d8f9efa19f479b>:0
at System.Threading.Tasks.Task`1[TResult].InnerInvoke () [0x0000f] in <ff07eae8184a40a08e79049bbcb31a0e>:0
at System.Threading.Tasks.Task.Execute () [0x00000] in <ff07eae8184a40a08e79049bbcb31a0e>:0
--- End of stack trace from previous location where exception was thrown ---
at Xamarin.Android.Net.AndroidClientHandler.DoProcessRequest (System.Net.Http.HttpRequestMessage request, Java.Net.URL javaUrl, Java.Net.HttpURLConnection httpConnection, System.Threading.CancellationToken cancellationToken, Xamarin.Android.Net.AndroidClientHandler+RequestRedirectionState redirectState) [0x0036c] in <a2f1be6565a84d5393d8f9efa19f479b>:0
at Xamarin.Android.Net.AndroidClientHandler.SendAsync (System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) [0x002be] in <a2f1be6565a84d5393d8f9efa19f479b>:0
at System.Net.Http.HttpClient.SendAsyncWorker (System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpCompletionOption completionOption, System.Threading.CancellationToken cancellationToken) [0x000e8] in <bded3dbf44d946c7ba5980c587dca714>:0
at Xamarin.Forms.Forms+AndroidPlatformServices.GetStreamAsync (System.Uri uri, System.Threading.CancellationToken cancellationToken) [0x0003b] in D:\a\1\s\Xamarin.Forms.Platform.Android\Forms.cs:646
at Xamarin.Forms.UriImageSource.GetStreamAsyncUnchecked (System.String key, System.Uri uri, System.Threading.CancellationToken cancellationToken) [0x001f7] in D:\a\1\s\Xamarin.Forms.Core\UriImageSource.cs:176
--- End of managed Java.Net.SocketException stack trace ---
java.net.SocketException: Socket closed
at com.android.org.conscrypt.NativeCrypto.SSL_read(Native Method)
at com.android.org.conscrypt.NativeSsl.read(NativeSsl.java:399)
at com.android.org.conscrypt.ConscryptFileDescriptorSocket$SSLInputStream.read(ConscryptFileDescriptorSocket.java:546)
at com.android.okhttp.okio.Okio$2.read(Okio.java:136)
at com.android.okhttp.okio.AsyncTimeout$2.read(AsyncTimeout.java:211)
at com.android.okhttp.okio.RealBufferedSource.indexOf(RealBufferedSource.java:306)
at com.android.okhttp.okio.RealBufferedSource.indexOf(RealBufferedSource.java:300)
at com.android.okhttp.okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:196)
at com.android.okhttp.internal.http.Http1xStream.readResponse(Http1xStream.java:186)
at com.android.okhttp.internal.http.Http1xStream.readResponseHeaders(Http1xStream.java:127)
at com.android.okhttp.internal.http.HttpEngine.readNetworkResponse(HttpEngine.java:762)
at com.android.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:634)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:482)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:418)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:549)
at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseCode(DelegatingHttpsURLConnection.java:105)
at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:26)