Skip to content

Conversation

@jonathanpeppers
Copy link
Member

@jonathanpeppers jonathanpeppers commented Jan 13, 2026

This should allow us to ignore failure cases like:

Mono.Android.NET_Tests, Xamarin.Android.NetTests.AndroidMessageHandlerTests.HttpContentStreamIsRewoundAfterCancellation / Release
Error message
System.AggregateException : AggregateException_ctor_DefaultMessage (Broken pipe)
----> System.Net.WebException : Broken pipe
----> Java.Net.SocketException : Broken pipe
Stack trace
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean)
   at System.Threading.Tasks.Task.Wait(Int32, CancellationToken)
   at System.Threading.Tasks.Task.Wait()
   at NUnit.Framework.Internal.AsyncInvocationRegion.AsyncTaskInvocationRegion.WaitForPendingOperationsToComplete(Object)
   at NUnit.Framework.Internal.Commands.TestMethodCommand.RunAsyncTestMethod(TestExecutionContext)
--WebException
   at Xamarin.Android.Net.AndroidMessageHandler.DoSendAsync(HttpRequestMessage, CancellationToken)
   at Xamarin.Android.Net.AndroidMessageHandler.SendWithNegotiateAuthenticationAsync(HttpRequestMessage, CancellationToken)
   at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage, HttpCompletionOption, CancellationTokenSource, Boolean, CancellationTokenSource, CancellationToken)
   at Xamarin.Android.NetTests.AndroidMessageHandlerTests.HttpContentStreamIsRewoundAfterCancellation()
--SocketException
   at Java.Interop.JniEnvironment.InstanceMethods.CallIntMethod(JniObjectReference, JniMethodInfo , JniArgumentValue*)
   at Java.Interop.JniPeerMembers.JniInstanceMethods.InvokeVirtualInt32Method(String, IJavaPeerable, JniArgumentValue* )
   at Java.Net.HttpURLConnection.get_ResponseCode()
   at Xamarin.Android.Net.AndroidMessageHandler.<>c__DisplayClass140_0.<DoProcessRequest>b__2()
   at System.Threading.Tasks.Task`1[[System.Net.HttpStatusCode, System.Net.Primitives, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]].InnerInvoke()
   at System.Threading.Tasks.Task.<>c.<.cctor>b__289_0(Object obj)
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread, ExecutionContext, ContextCallback, Object)
--- End of stack trace from previous location ---
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread, ExecutionContext, ContextCallback, Object)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task&, Thread )
--- End of stack trace from previous location ---
   at Xamarin.Android.Net.AndroidMessageHandler.DoProcessRequest(HttpRequestMessage, URL, HttpURLConnection, CancellationToken, RequestRedirectionState)
   at Xamarin.Android.Net.AndroidMessageHandler.DoSendAsync(HttpRequestMessage, CancellationToken)
  --- End of managed Java.Net.SocketException stack trace ---
java.net.SocketException: Broken pipe
   at java.net.SocketOutputStream.socketWrite0(Native Method)
   at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:117)
   at java.net.SocketOutputStream.write(SocketOutputStream.java:161)
   at com.android.okhttp.okio.Okio$1.write(Okio.java:78)
   at com.android.okhttp.okio.AsyncTimeout$1.write(AsyncTimeout.java:157)
   at com.android.okhttp.okio.RealBufferedSink.flush(RealBufferedSink.java:222)
   at com.android.okhttp.internal.http.Http1xStream.finishRequest(Http1xStream.java:163)
   at com.android.okhttp.internal.http.HttpEngine.readNetworkResponse(HttpEngine.java:748)
   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)

This should allow us to ignore failure cases like:

    Mono.Android.NET_Tests, Xamarin.Android.NetTests.AndroidMessageHandlerTests.HttpContentStreamIsRewoundAfterCancellation / Release
    Error message
    System.AggregateException : AggregateException_ctor_DefaultMessage (Broken pipe)
    ----> System.Net.WebException : Broken pipe
    ----> Java.Net.SocketException : Broken pipe
    Stack trace
       at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean)
       at System.Threading.Tasks.Task.Wait(Int32, CancellationToken)
       at System.Threading.Tasks.Task.Wait()
       at NUnit.Framework.Internal.AsyncInvocationRegion.AsyncTaskInvocationRegion.WaitForPendingOperationsToComplete(Object)
       at NUnit.Framework.Internal.Commands.TestMethodCommand.RunAsyncTestMethod(TestExecutionContext)
    --WebException
       at Xamarin.Android.Net.AndroidMessageHandler.DoSendAsync(HttpRequestMessage, CancellationToken)
       at Xamarin.Android.Net.AndroidMessageHandler.SendWithNegotiateAuthenticationAsync(HttpRequestMessage, CancellationToken)
       at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage, HttpCompletionOption, CancellationTokenSource, Boolean, CancellationTokenSource, CancellationToken)
       at Xamarin.Android.NetTests.AndroidMessageHandlerTests.HttpContentStreamIsRewoundAfterCancellation()
    --SocketException
       at Java.Interop.JniEnvironment.InstanceMethods.CallIntMethod(JniObjectReference, JniMethodInfo , JniArgumentValue*)
       at Java.Interop.JniPeerMembers.JniInstanceMethods.InvokeVirtualInt32Method(String, IJavaPeerable, JniArgumentValue* )
       at Java.Net.HttpURLConnection.get_ResponseCode()
       at Xamarin.Android.Net.AndroidMessageHandler.<>c__DisplayClass140_0.<DoProcessRequest>b__2()
       at System.Threading.Tasks.Task`1[[System.Net.HttpStatusCode, System.Net.Primitives, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]].InnerInvoke()
       at System.Threading.Tasks.Task.<>c.<.cctor>b__289_0(Object obj)
       at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread, ExecutionContext, ContextCallback, Object)
    --- End of stack trace from previous location ---
       at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread, ExecutionContext, ContextCallback, Object)
       at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task&, Thread )
    --- End of stack trace from previous location ---
       at Xamarin.Android.Net.AndroidMessageHandler.DoProcessRequest(HttpRequestMessage, URL, HttpURLConnection, CancellationToken, RequestRedirectionState)
       at Xamarin.Android.Net.AndroidMessageHandler.DoSendAsync(HttpRequestMessage, CancellationToken)
      --- End of managed Java.Net.SocketException stack trace ---
    java.net.SocketException: Broken pipe
       at java.net.SocketOutputStream.socketWrite0(Native Method)
       at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:117)
       at java.net.SocketOutputStream.write(SocketOutputStream.java:161)
       at com.android.okhttp.okio.Okio$1.write(Okio.java:78)
       at com.android.okhttp.okio.AsyncTimeout$1.write(AsyncTimeout.java:157)
       at com.android.okhttp.okio.RealBufferedSink.flush(RealBufferedSink.java:222)
       at com.android.okhttp.internal.http.Http1xStream.finishRequest(Http1xStream.java:163)
       at com.android.okhttp.internal.http.HttpEngine.readNetworkResponse(HttpEngine.java:748)
       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)
@jonathanpeppers
Copy link
Member Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

Changed the access modifier of IgnoreIfConnectionFailed from private to protected to allow access from derived classes in AndroidClientHandlerTests.
@simonrozsival
Copy link
Member

/azp run

@azure-pipelines
Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

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

Successfully merging this pull request may close these issues.

3 participants