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

SIGABRT after UnknownHostException #229

Open
lhaussknecht opened this issue Sep 29, 2016 · 15 comments
Open

SIGABRT after UnknownHostException #229

lhaussknecht opened this issue Sep 29, 2016 · 15 comments

Comments

@lhaussknecht
Copy link

After making an http a call while network is disconnected, I get an UnknownHostException (which can be catched). Now turning on wifi and making the second call results in a app crash, which cannot be catched.

09-29 16:53:42.741: W/dalvikvm(14941): Invalid indirect reference 0xa2590e20 in decodeIndirectRef 09-29 16:53:42.741: I/dalvikvm(14941): "OkHttp https://*****/token" prio=5 tid=14 RUNNABLE 09-29 16:53:42.741: I/dalvikvm(14941): | group="main" sCount=0 dsCount=0 obj=0xb30f97f8 self=0xb8ff6130 09-29 16:53:42.741: I/dalvikvm(14941): | sysTid=15173 nice=0 sched=0/0 cgrp=apps handle=-1179120768 09-29 16:53:42.741: I/dalvikvm(14941): | state=R schedstat=( 49673122 22762814 2813 ) utm=4 stm=0 core=0 09-29 16:53:42.741: I/dalvikvm(14941): at md595f4b8ab717b9da13f11267a86077f20.AwaitableOkHttp_OkTaskCallback.monodroidAddReference(AwaitableOkHttp_OkTaskCallback.java:-1) 09-29 16:53:42.741: I/dalvikvm(14941): at md595f4b8ab717b9da13f11267a86077f20.AwaitableOkHttp_OkTaskCallback.n_onResponse(Native Method) 09-29 16:53:42.741: I/dalvikvm(14941): at md595f4b8ab717b9da13f11267a86077f20.AwaitableOkHttp_OkTaskCallback.onResponse(AwaitableOkHttp_OkTaskCallback.java:39) 09-29 16:53:42.741: I/dalvikvm(14941): at com.squareup.okhttp.Call$AsyncCall.execute(Call.java:168) 09-29 16:53:42.741: I/dalvikvm(14941): at com.squareup.okhttp.internal.NamedRunnable.run(NamedRunnable.java:33) 09-29 16:53:42.741: I/dalvikvm(14941): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 09-29 16:53:42.741: I/dalvikvm(14941): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 09-29 16:53:42.741: I/dalvikvm(14941): at java.lang.Thread.run(Thread.java:841) 09-29 16:53:42.741: E/dalvikvm(14941): VM aborting 09-29 16:53:42.741: A/libc(14941): Fatal signal 6 (SIGABRT) at 0x00003a5d (code=-6), thread 15173 (OkHttp Dispatch)

@PureWeen
Copy link

PureWeen commented Oct 6, 2016

Hmm getting the same exception.... Been trying to hunt down random app crashes that started happening about a month ago after a Xamarin upgrade and finally was able to boil it down to this one as well...

I took a tombstone file and did an NDK-STACK against it and came up with what I pasted below...
The tombstone file also has the same exception that @lhaussknecht posted

I'm a bit new to using ndk-stack so hopefully I did it correctly :-/

It's odd because I setup an empty project with ModernHttpclient and it works fine when the network is disconnected but on my main project it crashes... I removed ModernHttpclient completely from my main project and now it's not crashing at all..

Still trying to track down the difference between the fresh project and my own to see why one works with Modern and the other doesn't

signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
Stack frame #00  pc 0003bc96  /system/lib/libc.so (tgkill+22)
Stack frame #01  pc 00000005  <unknown>
Stack frame #00  pc 0003c426  /system/lib/libc.so (__ioctl+22)
Stack frame #01  pc ffffffff  <unknown>
Stack frame #02  pc 00000bb6  <unknown>
Stack frame #03  pc 00000008  <unknown>
Stack frame #04  pc 0003bfaf  /system/lib/libbinder.so
Stack frame #05  pc 00012eaf  /system/lib/libutils.so
Stack frame #06  pc 00012ebf  /system/lib/libutils.so
Stack frame #07  pc ffffffff  <unknown>
Stack frame #00  pc 0003e179  /system/lib/libc.so (__futex_syscall4+25)
Stack frame #01  pc 0000845f  [heap]
Stack frame #00  pc 0003d66b  /system/lib/libc.so (__rt_sigtimedwait+27)
Stack frame #01  pc 000fcc97  [stack:3003]
Stack frame #00  pc 0003c610  /system/lib/libc.so (select+32)
Stack frame #01  pc 00000028  <unknown>
Stack frame #00  pc 0003e179  /system/lib/libc.so (__futex_syscall4+25)
Stack frame #01  pc 00072193  /system/lib/libdvm.so
Stack frame #00  pc 0003e179  /system/lib/libc.so (__futex_syscall4+25)
Stack frame #01  pc 0000162f  [heap]
Stack frame #00  pc 0003e179  /system/lib/libc.so (__futex_syscall4+25)
Stack frame #01  pc 00001f8f  [heap]
Stack frame #00  pc 0003e179  /system/lib/libc.so (__futex_syscall4+25)
Stack frame #01  pc 000028ef  [heap]
Stack frame #00  pc 0003c426  /system/lib/libc.so (__ioctl+22)
Stack frame #01  pc 0000413f  [heap]
Stack frame #00  pc 0003c426  /system/lib/libc.so (__ioctl+22)
Stack frame #01  pc 00004f3f  [heap]
Stack frame #00  pc 0003e179  /system/lib/libc.so (__futex_syscall4+25)
Stack frame #01  pc 00008ebb  <unknown>
Stack frame #00  pc 0003e179  /system/lib/libc.so (__futex_syscall4+25)
Stack frame #00  pc 0003d8c3  /system/lib/libc.so (recvfrom+19)
Stack frame #00  pc 0003e179  /system/lib/libc.so (__futex_syscall4+25)
Stack frame #01  pc 00549c0f  [heap]
Stack frame #00  pc 0003e179  /system/lib/libc.so (__futex_syscall4+25)
Stack frame #01  pc 005703df  [heap]
Stack frame #00  pc 0003e179  /system/lib/libc.so (__futex_syscall4+25)
Stack frame #01  pc 0001dd4b  [heap]
Stack frame #00  pc 0003e179  /system/lib/libc.so (__futex_syscall4+25)
Stack frame #01  pc 0000947b  <unknown>
Stack frame #00  pc 0003e179  /system/lib/libc.so (__futex_syscall4+25)
Stack frame #01  pc 00f3493b  [heap]
Stack frame #00  pc 0003e179  /system/lib/libc.so (__futex_syscall4+25)
Stack frame #01  pc 0001e71f  [heap]
Stack frame #00  pc 0003e179  /system/lib/libc.so (__futex_syscall4+25)
Stack frame #01  pc 0001e6db  [heap]
Stack frame #00  pc 0003e179  /system/lib/libc.so (__futex_syscall4+25)
Stack frame #01  pc 023f513f  [heap]
Stack frame #00  pc 0003e179  /system/lib/libc.so (__futex_syscall4+25)
Stack frame #01  pc 00f3493b  [heap]

@lhaussknecht
Copy link
Author

I opened an issue in Xamarin's bugtracker, because this error only appears in Xamarin cycle 8. https://bugzilla.xamarin.com/show_bug.cgi?id=45003

Downgrading to latest cycle 7 (Xamarin.VisualStudio_4.1.2.18.msi in my case) fixed the problem. I'm not sure that someone from ModernHttpClient can do much about it.

@PureWeen
Copy link

PureWeen commented Oct 7, 2016

Yea I saw that and the response of NEEDINFO :-/ That's what I was trying to create a sample for but so far I haven't been successful.. I think the issue might more be with OkHttp but that's just a wild guess... The only way I've been able to sort of simulate the issue is if I create lots of overlapping requests if the network is disconnected

So just kicking off a bunch of these

Task.Run(async () =>
                {
                    try
                    {
                        await theClient.GetAsync("");
                    }
                    catch (Exception exc)
                    {
                    }
                });
                Task.Run(async () =>
                {
                    try
                    {
                        await theClient.GetAsync("");
                    }
                    catch (Exception exc)
                    {
                    }
                });

If I'm connected to wifi or I don't use Modern then it just trucks along. But if I disconnect from my network eventually I get things like this...

[mono-rt] Stacktrace:
[mono-rt] 
[mono-rt]   at <unknown> <0xffffffff>
[mono-rt]   at (wrapper managed-to-native) object.__icall_wrapper_mono_gc_alloc_vector (intptr,intptr,intptr) <0x00043>
[mono-rt]   at (wrapper alloc) object.AllocVector (intptr,intptr) <IL 0x0008a, 0x001cf>
[mono-rt]   at System.Text.StringBuilder.ExpandByABlock (int) [0x00080] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/text/stringbuilder.cs:1992
[mono-rt]   at System.Text.StringBuilder.Append (char*,int) [0x0008e] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/text/stringbuilder.cs:1693
[mono-rt]   at System.Text.StringBuilder.AppendHelper (string) [0x0000b] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/text/stringbuilder.cs:678
[mono-rt]   at System.Text.StringBuilder.Append (string) [0x0008c] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/text/stringbuilder.cs:666
[mono-rt]   at string.Join (string,System.Collections.Generic.IEnumerable`1<string>) [0x0004e] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/string.cs:177
[mono-rt]   at ModernHttpClient.NativeMessageHandler/<SendAsync>c__async0.MoveNext () [0x00218] in /Users/paul/code/paulcbetts/modernhttpclient/src/ModernHttpClient/Android/OkHttpNetworkHandler.cs:109
[mono-rt]   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<System.Net.Http.HttpResponseMessage>.Start<ModernHttpClient.NativeMessageHandler/<SendAsync>c__async0> (ModernHttpClient.NativeMessageHandler/<SendAsync>c__async0&) [0x00031] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:471
[mono-rt]   at ModernHttpClient.NativeMessageHandler.SendAsync (System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken) <IL 0x0002e, 0x00197>
[mono-rt]   at System.Net.Http.HttpMessageInvoker.SendAsync (System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken) [0x00000] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/System.Net.Http/System.Net.Http/HttpMessageInvoker.cs:68
[mono-rt]   at System.Net.Http.HttpClient.<SendAsync>__BaseCallProxy0 (System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken) <IL 0x00003, 0x00067>
[mono-rt]   at System.Net.Http.HttpClient/<SendAsyncWorker>c__async0.MoveNext () [0x00071] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/System.Net.Http/System.Net.Http/HttpClient.cs:272
[mono-rt]   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<System.Net.Http.HttpResponseMessage>.Start<System.Net.Http.HttpClient/<SendAsyncWorker>c__async0> (System.Net.Http.HttpClient/<SendAsyncWorker>c__async0&) [0x00031] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:471
[mono-rt]   at System.Net.Http.HttpClient.SendAsyncWorker (System.Net.Http.HttpRequestMessage,System.Net.Http.HttpCompletionOption,System.Threading.CancellationToken) <IL 0x00036, 0x001af>
[mono-rt]   at System.Net.Http.HttpClient.SendAsync (System.Net.Http.HttpRequestMessage,System.Net.Http.HttpCompletionOption,System.Threading.CancellationToken) [0x000e7] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/System.Net.Http/System.Net.Http/HttpClient.cs:264
[mono-rt]   at System.Net.Http.HttpClient.SendAsync (System.Net.Http.HttpRequestMessage) [0x00000] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/System.Net.Http/System.Net.Http/HttpClient.cs:226
[mono-rt]   at System.Net.Http.HttpClient.GetAsync (string) [0x00000] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/System.Net.Http/System.Net.Http/HttpClient.cs:146
[mono-rt]   at ALoadTestXamFormss.MyPage/<>c__DisplayClass0_0/<<-ctor>b__3>d.MoveNext () [0x00018] in D:\Documents\SkyDrive\Xamarin2\ALoadTestXamFormss\ALoadTestXamFormss\MyPage.xaml.cs:45
[mono-rt]   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start<TStateMachine_REF> (TStateMachine_REF&) [0x00031] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:316
[mono-rt]   at ALoadTestXamFormss.MyPage/<>c__DisplayClass0_0.<.ctor>b__3 () <IL 0x0002a, 0x001bf>
[mono-rt]   at System.Threading.Tasks.Task`1<TResult_REF>.InnerInvoke () [0x00012] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/threading/Tasks/Future.cs:680
[mono-rt]   at System.Threading.Tasks.Task.Execute () [0x00016] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/threading/Tasks/Task.cs:2502
[mono-rt]   at System.Threading.Tasks.Task.ExecutionContextCallback (object) [0x00007] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/threading/Tasks/Task.cs:2865
[mono-rt]   at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x0008d] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:957
[mono-rt]   at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00000] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:904
[mono-rt]   at System.Threading.Tasks.Task.ExecuteWithThreadLocal (System.Threading.Tasks.Task&) [0x0005f] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/threading/Tasks/Task.cs:2827
[mono-rt]   at System.Threading.Tasks.Task.ExecuteEntry (bool) [0x0006f] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/threading/Tasks/Task.cs:2760
[mono-rt]   at System.Threading.Tasks.Task.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () [0x00000] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/threading/Tasks/Task.cs:2707
[mono-rt]   at System.Threading.ThreadPoolWorkQueue.Dispatch () [0x00096] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/threading/threadpool.cs:854
[mono-rt]   at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () [0x00000] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/threading/threadpool.cs:1209
[mono-rt]   at (wrapper runtime-invoke) <Module>.runtime_invoke_bool (object,intptr,intptr,intptr) <IL 0x0001f, 0x0007b>
[mono-rt] 
[mono-rt] Attempting native Android stacktrace:
[mono-rt] 
[libc] Fatal signal 7 (SIGBUS), code 2, fault addr 0x9afbd000 in tid 10145 (Thread-24446)
[Mono] GC_BRIDGE waiting for bridge processing to finish

or this

10-07 12:52:09.770 8735-8868/com.companyname.aloadtestxamformss D/Mono: GC_BRIDGE waiting for bridge processing to finish
10-07 12:52:09.773 8735-9579/com.companyname.aloadtestxamformss E/mono-rt: Stacktrace:
10-07 12:52:09.773 8735-9579/com.companyname.aloadtestxamformss E/mono-rt: Attempting native Android stacktrace:
10-07 12:52:09.787 8735-9579/com.companyname.aloadtestxamformss E/mono-rt:  at ???+0 [0x70c4ef50]
10-07 12:52:09.844 8735-9579/com.companyname.aloadtestxamformss E/mono-rt:  at ???+0 [0xdead431f]
10-07 12:52:09.856 8735-9579/com.companyname.aloadtestxamformss E/mono-rt: =================================================================
                                                                           Got a SIGSEGV while executing native code. This usually indicates
                                                                           a fatal error in the mono runtime or one of the native libraries 
                                                                           used by your application.
                                                                           =================================================================
10-07 12:52:09.857 8735-9579/com.companyname.aloadtestxamformss A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0xdead4321 in tid 9579 (Thread-24384)

For now I've removed Modern and we are seeing no more app crashes.

Unfortunately Modern currently can't be compiled against the latest Mono
#216

so not sure if something else more sinister has also fallen out of sync

The version you said is working for you has Mono Framework 4.4 where as the versions after have 4.6 ... There were some changes to TLS in 4.6
http://www.mono-project.com/docs/about-mono/releases/4.6.0/

Not sure if that relates :-)

@lhaussknecht
Copy link
Author

I'm currently on vacation and had no chance to supply something for
NEEDINFO...

We need to use mordern, because of the lack of TLS 1.2 support in the Mono
implementation.

When I'm back I'll try to run some tests in my environment.

2016-10-07 21:17 GMT+02:00 Shane Neuville [email protected]:

Yea I saw that and the response of NEEDINFO :-/ That's what I was trying
to create a sample for but so far I haven't been successful.. I think the
issue might more be with OkHttp but that's just a wild guess... The only
way I've been able to sort of simulate the issue is if I create lots of
overlapping requests if the network is disconnected

So just kicking off a bunch of these

Task.Run(async () =>
{
try
{
await theClient.GetAsync("");
}
catch (Exception exc)
{
}
});
Task.Run(async () =>
{
try
{
await theClient.GetAsync("");
}
catch (Exception exc)
{
}
});

If I'm connected to wifi or I don't use Modern then it just trucks along.
But if I disconnect from my network eventually I get things like this...

[mono-rt] Stacktrace:
[mono-rt]
[mono-rt] at <0xffffffff>
[mono-rt] at (wrapper managed-to-native) object.__icall_wrapper_mono_gc_alloc_vector (intptr,intptr,intptr) <0x00043>
[mono-rt] at (wrapper alloc) object.AllocVector (intptr,intptr) <IL 0x0008a, 0x001cf>
[mono-rt] at System.Text.StringBuilder.ExpandByABlock (int) [0x00080] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/text/stringbuilder.cs:1992
[mono-rt] at System.Text.StringBuilder.Append (char*,int) [0x0008e] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/text/stringbuilder.cs:1693
[mono-rt] at System.Text.StringBuilder.AppendHelper (string) [0x0000b] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/text/stringbuilder.cs:678
[mono-rt] at System.Text.StringBuilder.Append (string) [0x0008c] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/text/stringbuilder.cs:666
[mono-rt] at string.Join (string,System.Collections.Generic.IEnumerable1<string>) [0x0004e] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/string.cs:177 [mono-rt] at ModernHttpClient.NativeMessageHandler/<SendAsync>c__async0.MoveNext () [0x00218] in /Users/paul/code/paulcbetts/modernhttpclient/src/ModernHttpClient/Android/OkHttpNetworkHandler.cs:109 [mono-rt] at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1<System.Net.Http.HttpResponseMessage>.Start<ModernHttpClient.NativeMessageHandler/c__async0> (ModernHttpClient.NativeMessageHandler/c__async0&) [0x00031] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:471
[mono-rt] at ModernHttpClient.NativeMessageHandler.SendAsync (System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken) <IL 0x0002e, 0x00197>
[mono-rt] at System.Net.Http.HttpMessageInvoker.SendAsync (System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken) [0x00000] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/System.Net.Http/System.Net.Http/HttpMessageInvoker.cs:68
[mono-rt] at System.Net.Http.HttpClient.__BaseCallProxy0 (System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken) <IL 0x00003, 0x00067>
[mono-rt] at System.Net.Http.HttpClient/c__async0.MoveNext () [0x00071] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/System.Net.Http/System.Net.Http/HttpClient.cs:272
[mono-rt] at System.Runtime.CompilerServices.AsyncTaskMethodBuilder1<System.Net.Http.HttpResponseMessage>.Start<System.Net.Http.HttpClient/<SendAsyncWorker>c__async0> (System.Net.Http.HttpClient/<SendAsyncWorker>c__async0&) [0x00031] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:471 [mono-rt] at System.Net.Http.HttpClient.SendAsyncWorker (System.Net.Http.HttpRequestMessage,System.Net.Http.HttpCompletionOption,System.Threading.CancellationToken) <IL 0x00036, 0x001af> [mono-rt] at System.Net.Http.HttpClient.SendAsync (System.Net.Http.HttpRequestMessage,System.Net.Http.HttpCompletionOption,System.Threading.CancellationToken) [0x000e7] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/System.Net.Http/System.Net.Http/HttpClient.cs:264 [mono-rt] at System.Net.Http.HttpClient.SendAsync (System.Net.Http.HttpRequestMessage) [0x00000] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/System.Net.Http/System.Net.Http/HttpClient.cs:226 [mono-rt] at System.Net.Http.HttpClient.GetAsync (string) [0x00000] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/System.Net.Http/System.Net.Http/HttpClient.cs:146 [mono-rt] at ALoadTestXamFormss.MyPage/<>c__DisplayClass0_0/<<-ctor>b__3>d.MoveNext () [0x00018] in D:\Documents\SkyDrive\Xamarin2\ALoadTestXamFormss\ALoadTestXamFormss\MyPage.xaml.cs:45 [mono-rt] at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start<TStateMachine_REF> (TStateMachine_REF&) [0x00031] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:316 [mono-rt] at ALoadTestXamFormss.MyPage/<>c__DisplayClass0_0.<.ctor>b__3 () <IL 0x0002a, 0x001bf> [mono-rt] at System.Threading.Tasks.Task1<TResult_REF>.InnerInvoke () [0x00012] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/threading/Tasks/Future.cs:680
[mono-rt] at System.Threading.Tasks.Task.Execute () [0x00016] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/threading/Tasks/Task.cs:2502
[mono-rt] at System.Threading.Tasks.Task.ExecutionContextCallback (object) [0x00007] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/threading/Tasks/Task.cs:2865
[mono-rt] at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x0008d] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:957
[mono-rt] at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00000] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:904
[mono-rt] at System.Threading.Tasks.Task.ExecuteWithThreadLocal (System.Threading.Tasks.Task&) [0x0005f] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/threading/Tasks/Task.cs:2827
[mono-rt] at System.Threading.Tasks.Task.ExecuteEntry (bool) [0x0006f] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/threading/Tasks/Task.cs:2760
[mono-rt] at System.Threading.Tasks.Task.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () [0x00000] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/threading/Tasks/Task.cs:2707
[mono-rt] at System.Threading.ThreadPoolWorkQueue.Dispatch () [0x00096] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/threading/threadpool.cs:854
[mono-rt] at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () [0x00000] in /Users/builder/data/lanes/3819/96c7ba6c/source/mono/mcs/class/referencesource/mscorlib/system/threading/threadpool.cs:1209
[mono-rt] at (wrapper runtime-invoke) .runtime_invoke_bool (object,intptr,intptr,intptr) <IL 0x0001f, 0x0007b>
[mono-rt]
[mono-rt] Attempting native Android stacktrace:
[mono-rt]
[libc] Fatal signal 7 (SIGBUS), code 2, fault addr 0x9afbd000 in tid 10145 (Thread-24446)
[Mono] GC_BRIDGE waiting for bridge processing to finish

or this

10-07 12:52:09.770 8735-8868/com.companyname.aloadtestxamformss D/Mono: GC_BRIDGE waiting for bridge processing to finish
10-07 12:52:09.773 8735-9579/com.companyname.aloadtestxamformss E/mono-rt: Stacktrace:
10-07 12:52:09.773 8735-9579/com.companyname.aloadtestxamformss E/mono-rt: Attempting native Android stacktrace:
10-07 12:52:09.787 8735-9579/com.companyname.aloadtestxamformss E/mono-rt: at ???+0 [0x70c4ef50]
10-07 12:52:09.844 8735-9579/com.companyname.aloadtestxamformss E/mono-rt: at ???+0 [0xdead431f]
10-07 12:52:09.856 8735-9579/com.companyname.aloadtestxamformss E/mono-rt: =================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================
10-07 12:52:09.857 8735-9579/com.companyname.aloadtestxamformss A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0xdead4321 in tid 9579 (Thread-24384)

For now I've removed Modern and we are seeing no more app crashes.

Unfortunately Modern currently can't be compiled against the latest Mono
#216 #216

so not sure if something else more sinister has also fallen out of sync

The version you said is working for you has Mono Framework 4.4 where as
the versions after have 4.6 ... There were some changes to TLS in 4.6
http://www.mono-project.com/docs/about-mono/releases/4.6.0/

Not sure if that relates :-)


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#229 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAIjc1xwGqkGEqk7jCM3H2FD_2Wsm9svks5qxprPgaJpZM4KKG4z
.

@PureWeen
Copy link

PureWeen commented Oct 7, 2016

Aw ok

It looks like recent mono has brought TLS 1.2 to the table
http://tirania.org/blog/archive/2016/Sep-30.html

http://www.mono-project.com/docs/about-mono/releases/4.6.0/

And through android you can use
var client = new HttpClient (
new Xamarin.Android.Net.AndroidClientHandler ());

to Get TLS 1.2
https://developer.xamarin.com/releases/android/xamarin.android_6/xamarin.android_6.1/

@kYann
Copy link
Contributor

kYann commented Oct 12, 2016

Hey !

I found why we have crash when okhttp throw exception :
It starts here https://github.com/paulcbetts/ModernHttpClient/blob/master/src/ModernHttpClient/Android/OkHttpNetworkHandler.cs#L184

When an exception occurs, it is set on the task. Then this exception is catch here :
https://github.com/paulcbetts/ModernHttpClient/blob/master/src/ModernHttpClient/Android/OkHttpNetworkHandler.cs#L130

And when accessing the Java exception, it fails with sigsev. I think the Java collector collected the exception and we are accessing a part of the memory that we souldn't.

What I did ;
As I don't need the typed exception, I've replace the tcs.TrySetException(p1) with tcs.TrySetException(new WebException(p1.Message));

I'm gonna put my version on a fork and provide a nuget package

@kYann
Copy link
Contributor

kYann commented Oct 12, 2016

Hotfix branch https://github.com/Youscribe/ModernHttpClient/tree/hotfix/cycle8-issue

Nupkg is attached (rename to .nupkg)
modernhttpclient.2.4.3.2.zip

@kYann
Copy link
Contributor

kYann commented Oct 12, 2016

I'm so sick of xamarin :'(

@mikescandy
Copy link

I confirm that this fix solves a number of random crashes I experienced in my app. A network exception thrown by modern would eventually crash the app somewhere else. Any chance somebody can merge the fix?

@enantiomer2000
Copy link

I also am experiencing this problem. I am using VS Xamarin 4.2.1.64..

@enantiomer2000
Copy link

Youscribe hotfix branch seems to address the crashes. Development of ModernHttpClient seems to be pretty stagnant. Is anybody going to merge the branch with the source?

@SimpsOff
Copy link

Xamarin does some things really well... but the added level and number of poorly maintained projects/bindings is really sad. Thanks @kYann for this fix, I'm trying now and hoping it fixes my issue.

Hopefully it will be merged into this soon?

@david-laundav
Copy link

+1. I'd really like to see this being merged as well. The solution is seemingly quite simple and straight forward.

Unfortunately, we can not downgrade to Cycle 7, as others have suggested, as we depend on Android Nougat (SDK 24) as our Target Platform which consequently requires Cycle 8.

Does anyone who are involved in this ticket know who we need to reach out to before this issue retrieves some attention?

@lhaussknecht
Copy link
Author

lhaussknecht commented Feb 15, 2017 via email

@david-laundav
Copy link

We are using this fork, where a patch is implemented.

See:
#229 (comment)

This is unfortunately not a viable solution for us either due to maintainability. We have to use official resources (i.e. the NuGet Package Manager) as we're shipping an application which is utilised by million of users.

Does anyone know when an official update will be provided through the NuGet Package Manager?

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

7 participants