Hi,

As simple workaround while we figure out how to fix it add a static method
to you App class with the following:

static void LinqWorkAround () {
 System.Linq.OrderedEnumerable<Foo>.CreateOrderedEnumerable<int> (null,
null, false);
}

This should take care of this crash. If you're building your project with
user code linking enabled,
make sure to have this method called during initialization, something like
this:

static bool dummy = false;

static void main () {

if (dummy)  LinqWorkAround ();
}



On Wed, Feb 29, 2012 at 2:24 PM, danmiser <[email protected]> wrote:

> I've searched through this group, StackOverflow, and the MT bugzilla list.
> There are a lot of mentions about this, but I'm having a hard time finding
> an authoritative answer. Assume the following code:
>
> var list = new List<Foo>();
> list.Add (new Foo { Id = 3, Name="def"});
> list.Add (new Foo { Id = 2, Name="def"});
> list.Add (new Foo { Id = 1, Name="ggg"});
> var x = from l in list orderby l.Name, l.Id select l;
> foreach (var item in x) { ... do something ... }
>
> public class Foo {
>  public int Id { get; set; }
>  public string Name { get; set; }
> }
>
> When running on the device, I get the info pasted below.
>
> Notes:
> 1. This only fails on the device
> 2. It doesn't fail if you just have one orderby item
>
> I have a lot of LINQ in my POCO classes, and I wouldn't relish the idea of
> unwinding it all.
>
> What do I need to do to make this work?
>
> Unhandled Exception: System.ExecutionEngineException: Attempting to JIT
> compile method
> 'System.Linq.OrderedEnumerable`1<Foo>:CreateOrderedEnumerable<int>
> (System.Func`2<Foo, int>,System.Collections.Generic.IComparer`1<int>,bool)'
> while running with --aot-only.
>
>  at System.Linq.Enumerable.ThenBy[Foo,Int32] (IOrderedEnumerable`1 source,
> System.Func`2 keySelector, IComparer`1 comparer) [0x00007] in
>
> /Developer/MonoTouch/Source/mono/mcs/class/System.Core/System.Linq/Enumerable.cs:2787
>  at System.Linq.Enumerable.ThenBy[Foo,Int32] (IOrderedEnumerable`1 source,
> System.Func`2 keySelector) [0x00000] in
>
> /Developer/MonoTouch/Source/mono/mcs/class/System.Core/System.Linq/Enumerable.cs:2779
>  at TestLibrary.HelloContext.List () [0x00006] in
> /Users/danmiser/code/MonoTouchRestDemo/TestLibrary/MyClass.cs:18
>  at MonoTouchRestDemo.MonoTouchRestDemoViewController.<ViewDidLoad>m__0
> (System.Object sender, System.EventArgs e) [0x00006] in
>
> /Users/danmiser/code/MonoTouchRestDemo/MonoTouchRestDemo/MonoTouchRestDemoViewController.cs:38
>  at MonoTouch.UIKit.UIControlEventProxy.Activated () [0x00000] in
> /Developer/MonoTouch/Source/monotouch/src/UIKit/UIControl.cs:30
>  at MonoTouch.UIKit.UIApplication.Main (System.String[] args, System.String
> principalClassName, System.String delegateClassName) [0x00042] in
> /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:29
>  at MonoTouchRestDemo.Application.Main (System.String[] args) [0x00000] in
> /Users/danmiser/code/MonoTouchRestDemo/MonoTouchRestDemo/Main.cs:16
> [ERROR] FATAL UNHANDLED EXCEPTION: System.ExecutionEngineException:
> Attempting to JIT compile method
>
> 'System.Linq.OrderedEnumerable`1<TestLibrary.HelloClone>:CreateOrderedEnumerable<int>
> (System.Func`2<TestLibrary.HelloClone,
> int>,System.Collections.Generic.IComparer`1<int>,bool)' while running with
> --aot-only.
>
>  at System.Linq.Enumerable.ThenBy[Foo,Int32] (IOrderedEnumerable`1 source,
> System.Func`2 keySelector, IComparer`1 comparer) [0x00007] in
>
> /Developer/MonoTouch/Source/mono/mcs/class/System.Core/System.Linq/Enumerable.cs:2787
>  at System.Linq.Enumerable.ThenBy[Foo,Int32] (IOrderedEnumerable`1 source,
> System.Func`2 keySelector) [0x00000] in
>
> /Developer/MonoTouch/Source/mono/mcs/class/System.Core/System.Linq/Enumerable.cs:2779
>  at TestLibrary.HelloContext.List () [0x00006] in
> /Users/danmiser/code/MonoTouchRestDemo/TestLibrary/MyClass.cs:18
>  at MonoTouchRestDemo.MonoTouchRestDemoViewController.<ViewDidLoad>m__0
> (System.Object sender, System.EventArgs e) [0x00006] in
>
> /Users/danmiser/code/MonoTouchRestDemo/MonoTouchRestDemo/MonoTouchRestDemoViewController.cs:38
>  at MonoTouch.UIKit.UIControlEventProxy.Activated () [0x00000] in
> /Developer/MonoTouch/Source/monotouch/src/UIKit/UIControl.cs:30
>  at MonoTouch.UIKit.UIApplication.Main (System.String[] args, System.String
> principalClassName, System.String delegateClassName) [0x00042] in
> /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:29
>  at MonoTouchRestDemo.Application.Main (System.String[] args) [0x00000] in
> /Users/danmiser/code/MonoTouchRestDemo/MonoTouchRestDemo/Main.cs:16
> Terminating runtime due to unhandled exception
> Stacktrace:
>
>
> Native stacktrace:
>
>        0   MonoTouchRestDemo                   0x01616970
> mono_handle_native_sigsegv + 280
>        1   MonoTouchRestDemo                   0x016396c4
> sigabrt_signal_handler +
> 180
>        2   libsystem_c.dylib                   0x331b6539 _sigtramp + 48
>        3   libsystem_c.dylib                   0x331abf5b pthread_kill + 54
>        4   libsystem_c.dylib                   0x331a4feb abort + 94
>        5   MonoTouchRestDemo                   0x016f2774 monoeg_g_logv +
> 152
>        6   MonoTouchRestDemo                   0x016f27c0
> monoeg_assertion_message
> + 52
>        7   MonoTouchRestDemo                   0x01600348
> mono_thread_abort + 148
>        8   MonoTouchRestDemo                   0x0161653c
> mono_handle_exception_internal + 3188
>        9   MonoTouchRestDemo                   0x01616740
> mono_handle_exception +
> 24
>        10  MonoTouchRestDemo                   0x016382d8
> mono_arm_throw_exception
> + 172
>        11  MonoTouchRestDemo                   0x005c361c throw_exception
> + 48
>        12  MonoTouchRestDemo                   0x01602910
> mono_jit_compile_method
> + 68
>        13  MonoTouchRestDemo                   0x016a9ed8
> mono_compile_method + 56
>        14  MonoTouchRestDemo                   0x01619d10
> common_call_trampoline +
> 1364
>        15  MonoTouchRestDemo                   0x01617de4
> mono_vcall_trampoline +
> 228
>        16  MonoTouchRestDemo                   0x005c3528
> generic_trampoline_vcall
> + 136
>        17  MonoTouchRestDemo                   0x003b1c5c
>
> System_Linq_Enumerable_ThenBy_TestLibrary_HelloClone_int_System_Linq_IOrderedEnumerable_1_TestLibrary_HelloClone_System_Func_2_TestLibrary_HelloClone_int
> + 144
>        18  MonoTouchRestDemo                   0x003b0ca0
> TestLibrary_HelloContext_List + 512
>        19  MonoTouchRestDemo                   0x006a9d34
>
> MonoTouchRestDemo_MonoTouchRestDemoViewController__ViewDidLoadm__0_object_System_EventArgs
> + 300
>        20  MonoTouchRestDemo                   0x0000edcc
> MonoTouch_UIKit_UIControlEventProxy_Activated + 68
>        21  MonoTouchRestDemo                   0x0057c188
>
> wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr
> + 200
>        22  MonoTouchRestDemo                   0x01602fbc
> mono_jit_runtime_invoke
> + 1644
>        23  MonoTouchRestDemo                   0x016ab43c
> mono_runtime_invoke +
> 128
>        24  MonoTouchRestDemo                   0x01707b54
> monotouch_trampoline +
> 3228
>        25  CoreFoundation                      0x34321435 -[NSObject
> performSelector:withObject:withObject:] + 52
>        26  UIKit                               0x3778b9eb -[UIApplication
> sendAction:to:from:forEvent:] + 62
>        27  UIKit                               0x3778b9a7 -[UIApplication
> sendAction:toTarget:fromSender:forEvent:] + 30
>        28  UIKit                               0x3778b985 -[UIControl
> sendAction:to:forEvent:] + 44
>        29  UIKit                               0x3778b6f5
> -[UIControl(Internal)
> _sendActionsForEvents:withEvent:] + 492
>        30  UIKit                               0x3778c02d -[UIControl
> touchesEnded:withEvent:] + 476
>        31  UIKit                               0x3778a50f -[UIWindow
> _sendTouchesForEvent:] + 318
>        32  UIKit                               0x37789f01 -[UIWindow
> sendEvent:] +
> 380
>        33  UIKit                               0x377704ed -[UIApplication
> sendEvent:] + 356
>        34  UIKit                               0x3776fd2d
> _UIApplicationHandleEvent + 5808
>        35  GraphicsServices                    0x30ba2df3
> PurpleEventCallback +
> 882
>        36  CoreFoundation                      0x3439b553
> __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 38
>        37  CoreFoundation                      0x3439b4f5
> __CFRunLoopDoSource1 +
> 140
>        38  CoreFoundation                      0x3439a343 __CFRunLoopRun +
> 1370
>        39  CoreFoundation                      0x3431d4dd
> CFRunLoopRunSpecific +
> 300
>        40  CoreFoundation                      0x3431d3a5
> CFRunLoopRunInMode + 104
>        41  GraphicsServices                    0x30ba1fcd GSEventRunModal
> + 156
>        42  UIKit                               0x3779e743
> UIApplicationMain + 1090
>        43  MonoTouchRestDemo                   0x00026cfc
>
> wrapper_managed_to_native_MonoTouch_UIKit_UIApplication_UIApplicationMain_int_string___intptr_intptr
> + 240
>        44  MonoTouchRestDemo                   0x006a8f20
> MonoTouchRestDemo_Application_Main_string__ + 152
>        45  MonoTouchRestDemo                   0x0057c188
>
> wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr
> + 200
>        46  MonoTouchRestDemo                   0x01602fbc
> mono_jit_runtime_invoke
> + 1644
>        47  MonoTouchRestDemo                   0x016ab43c
> mono_runtime_invoke +
> 128
>        48  MonoTouchRestDemo                   0x016af6e8
> mono_runtime_exec_main +
> 436
>        49  MonoTouchRestDemo                   0x016b435c
> mono_runtime_run_main +
> 756
>        50  MonoTouchRestDemo                   0x01607344 mono_jit_exec +
> 140
>        51  MonoTouchRestDemo                   0x015ff550 main + 2168
>        52  MonoTouchRestDemo                   0x00002504 start + 52
>
> --
> View this message in context:
> http://monotouch.2284126.n4.nabble.com/LINQ-and-OrderBy-again-tp4432245p4432245.html
> Sent from the MonoTouch mailing list archive at Nabble.com.
> _______________________________________________
> MonoTouch mailing list
> [email protected]
> http://lists.ximian.com/mailman/listinfo/monotouch
>
_______________________________________________
MonoTouch mailing list
[email protected]
http://lists.ximian.com/mailman/listinfo/monotouch

Reply via email to