Anup Marwadi
Anup Marwadi

Reputation: 2577

RestSharp/MonoTouch Error only on Device

I'm running into this error that only happens on the device and not on the simulator. I'm trying to save a user profile that contains the fields: First Name, Last Name, Email, Gender, Date of Birth and an optional Photo (byte[]).

Irrespective of whether I use the photo or not, the API is called and then I immediately get this error. It looks like the error has to do with Rest deserialization.

Stacktrace:

at RestSharp.RestClient.Deserialize<T> (RestSharp.IRestRequest,RestSharp.RestResponse) <0x001ab>
at RestSharp.RestClient/<ExecuteAsync>c__AnonStorey9`1.<>m__19 (RestSharp.RestResponse,RestSharp.RestRequestAsyncHandle) <0x00147>
at RestSharp.RestClient.ProcessResponse (RestSharp.HttpResponse,RestSharp.RestRequestAsyncHandle,System.Action`2<RestSharp.RestResponse, RestSharp.RestRequestAsyncHandle>) <IL 0x0000b, 0x000db>
at RestSharp.RestClient/<ExecuteAsync>c__AnonStorey8.<>m__15 (RestSharp.HttpResponse) <IL 0x00013, 0x0009b>
at RestSharp.Http.ExecuteCallback (RestSharp.HttpResponse,System.Action`1<RestSharp.HttpResponse>) <IL 0x00002, 0x00093>
at RestSharp.Http/<ResponseCallback>c__AnonStorey6.<>m__5 (System.Net.HttpWebResponse) <IL 0x00018, 0x000c3>
at RestSharp.Http.GetRawResponseAsync (System.IAsyncResult,System.Action`1<System.Net.HttpWebResponse>) <IL 0x0005f, 0x0078b>
at RestSharp.Http.ResponseCallback (System.IAsyncResult,System.Action`1<RestSharp.HttpResponse>) <IL 0x00060, 0x00363>
at RestSharp.Http/<RequestStreamCallback>c__AnonStorey5.<>m__4 (System.IAsyncResult) <IL 0x0000d, 0x00093>
at System.Net.WebAsyncResult.CB (object) [0x00000] in /Developer/MonoTouch/Source/mono/mcs/class/System/System.Net/WebAsyncResult.cs:148
at (wrapper runtime-invoke) object.runtime_invoke_dynamic (intptr,intptr,intptr,intptr) <0xffffffff>

Native stacktrace:

0   ScrapBoomiPhone                     0x00f5c5e5 mono_handle_native_sigsegv + 244
1   ScrapBoomiPhone                     0x00f7560d sigabrt_signal_handler + 112
2   libsystem_c.dylib                   0x34e5ce93 _sigtramp + 42
3   libsystem_c.dylib                   0x34e53123 pthread_kill + 58
4   libsystem_c.dylib                   0x34e8f973 abort + 94
5   ScrapBoomiPhone                     0x010160bb monoeg_g_log + 122
6   ScrapBoomiPhone                     0x00f52383 get_numerous_trampoline + 134
7   ScrapBoomiPhone                     0x00f5264b mono_aot_get_imt_thunk + 34
8   ScrapBoomiPhone                     0x00fc5e05 initialize_imt_slot + 72
9   ScrapBoomiPhone                     0x00fc6bcb build_imt_slots + 642
10  ScrapBoomiPhone                     0x00fc6ca5 mono_vtable_build_imt_slot + 80
11  ScrapBoomiPhone                     0x00f5e60d mono_convert_imt_slot_to_vtable_slot + 212
12  ScrapBoomiPhone                     0x00f5e7b9 common_call_trampoline + 180
13  ScrapBoomiPhone                     0x00f5d48b mono_vcall_trampoline + 158
14  ScrapBoomiPhone                     0x00752bd8 generic_trampoline_vcall + 136
15  ScrapBoomiPhone                     0x002656bc RestSharp_RestClient__ExecuteAsyncc__AnonStorey9_1__m__19_RestSharp_RestResponse_RestSharp_RestRequestAsyncHandle + 328
16  ScrapBoomiPhone                     0x0020d7a4 RestSharp_RestClient_ProcessResponse_RestSharp_HttpResponse_RestSharp_RestRequestAsyncHandle_System_Action_2_RestSharp_RestResponse_RestSharp_RestRequestAsyncHandle + 220
17  ScrapBoomiPhone                     0x002651a8 RestSharp_RestClient__ExecuteAsyncc__AnonStorey8__m__15_RestSharp_HttpResponse + 156
18  ScrapBoomiPhone                     0x001fe7d0 RestSharp_Http_ExecuteCallback_RestSharp_HttpResponse_System_Action_1_RestSharp_HttpResponse + 148
19  ScrapBoomiPhone                     0x00264c74 RestSharp_Http__ResponseCallbackc__AnonStorey6__m__5_System_Net_HttpWebResponse + 196
20  ScrapBoomiPhone                     0x001fe020 RestSharp_Http_GetRawResponseAsync_System_IAsyncResult_System_Action_1_System_Net_HttpWebResponse + 1932
21  ScrapBoomiPhone                     0x001fe41c RestSharp_Http_ResponseCallback_System_IAsyncResult_System_Action_1_RestSharp_HttpResponse + 868
22  ScrapBoomiPhone                     0x00264a9c RestSharp_Http__RequestStreamCallbackc__AnonStorey5__m__4_System_IAsyncResult + 148
23  ScrapBoomiPhone                     0x0035ad4c System_Net_WebAsyncResult_CB_object + 48
24  ScrapBoomiPhone                     0x006f7ff0 wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr + 200
25  ScrapBoomiPhone                     0x00f4a22f mono_jit_runtime_invoke + 1054
26  ScrapBoomiPhone                     0x00fc55ff mono_runtime_invoke + 90
27  ScrapBoomiPhone                     0x00fc5705 mono_runtime_delegate_invoke + 92
28  ScrapBoomiPhone                     0x00ff5ac1 async_invoke_thread + 2480
29  ScrapBoomiPhone                     0x00ff9c87 start_wrapper + 306
30  ScrapBoomiPhone                     0x0100ba5d thread_start_routine + 96
31  ScrapBoomiPhone                     0x00fdf939 gc_start_thread + 60
32  libsystem_c.dylib                   0x34e35311 <redacted> + 308
33  libsystem_c.dylib                   0x34e351d8 thread_start + 8

=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

I would highly appreciate any insights on this. Thank you!

Upvotes: 2

Views: 281

Answers (1)

poupou
poupou

Reputation: 43553

5 ScrapBoomiPhone 0x010160bb monoeg_g_log + 122

That line, from your stack trace, is an hint that the Mono runtime tried to show (log) something before it crashed. In such case you should use Xcode's organizer to see the console log. There will be some text printed that will tell you what was wrong.

The most common case (before 6.0.8) is a lack of trampolines (of type 0, 1 or 2). That's even more likely considering the stack frame just below:

6 ScrapBoomiPhone 0x00f52383 get_numerous_trampoline + 134

See here for a description and how to fix it (but you still need to read the console to know which trampoline type is needed - or of it could be something else).

Note: One of the (just released) MonoTouch 6.0.8 major new feature is that it removes the need (for developers) to change this setting (it adapts automagically). Hopefully it's existence will soon be totally forgotten.

Upvotes: 2

Related Questions