<div dir="ltr">Hi Phi Le,<div><br></div><div>Do you have a program that shows this issue that we could use to reproduce it?</div><div><br></div><div>--</div><div>Rodrigo</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 7, 2016 at 7:06 PM, Phi Le <span dir="ltr"><<a href="mailto:iamphi@gmail.com" target="_blank">iamphi@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div>I think TrySZReverse is causing a crash in my program. Under certain conditions (easily repeatable), I think TrySZReverse finish, but my program will crash soon after the program do some more things. This only a problem with mono 4.4. The same program doesn't crash with mono 4.0 or 4.2 .<br></div>How is TrySZReverse implemented? Usage found here:<br><a href="https://github.com/mono/mono/blob/d70777a3332af2d630d24adf620c2e548b92b56a/mcs/class/referencesource/mscorlib/system/array.cs#L1605" target="_blank">https://github.com/mono/mono/blob/d70777a3332af2d630d24adf620c2e548b92b56a/mcs/class/referencesource/mscorlib/system/array.cs#L1605</a><br>I am not using TrySZReverse directly; I am using Array.Reverse(Builds, 0, num);. I tried to do my own array reverse, just like the backup algorithm in Array.Reverse (line 1609-1629), and the program runs fine.<br></div>I can't share this program publicly. The program is using the mobjc library, a C# Objective-c bridge, so mobjc could be doing things that is not compatible with mono.<br></div>Is this a mono bug? or my program's bug?<br><br><div><div><div>Here is what the crashing thread look like with mono 4.4 (64bit).<br>* thread #1: tid = 0x11b779, 0x00007fff96bb3582 libsystem_kernel.dylib`__wait4 + 10, name = 'tid_50f', queue = 'com.apple.main-thread', stop reason = signal SIGSTOP<br>  * frame #0: 0x00007fff96bb3582 libsystem_kernel.dylib`__wait4 + 10<br>    frame #1: 0x000000010cb2e721 mono-sgen64`mono_handle_native_sigsegv(signal=<unavailable>, ctx=<unavailable>, info=<unavailable>) + 433 at mini-exceptions.c:2348 [opt]<br>    frame #2: 0x000000010cb8453a mono-sgen64`mono_arch_handle_altstack_exception(sigctx=0x000000010d241f48, siginfo=<unavailable>, fault_addr=<unavailable>, stack_ovf=0) + 90 at exceptions-amd64.c:808 [opt]<br>    frame #3: 0x000000010ca827d8 mono-sgen64`mono_sigsegv_signal_handler(_dummy=<unavailable>, _info=<unavailable>, context=<unavailable>) + 392 at mini-runtime.c:2888 [opt]<br>    frame #4: 0x00007fff94b7452a libsystem_platform.dylib`_sigtramp + 26<br>    frame #5: 0x000000010cc9be59 mono-sgen64`copy_object_no_checks [inlined] sgen_vtable_get_descriptor(vtable=0x0000000000000000) + 1 at sgen-client-mono.h:39 [opt]<br>    frame #6: 0x000000010cc9be58 mono-sgen64`copy_object_no_checks(obj=0x000000010d6b8198, queue=0x000000010ce05c20) + 24 at sgen-copy-object.h:64 [opt]<br>    frame #7: 0x000000010cc96ee6 mono-sgen64`drain_gray_stack [inlined] major_copy_or_mark_object_no_evacuation(obj=<unavailable>) + 33 at sgen-marksweep-drain-gray-stack.h:91 [opt]<br>    frame #8: 0x000000010cc96ec5 mono-sgen64`drain_gray_stack [inlined] major_scan_object_no_evacuation(full_object=<unavailable>, desc=<unavailable>) + 2221 at sgen-scan-object.h:67 [opt]<br>    frame #9: 0x000000010cc96618 mono-sgen64`drain_gray_stack [inlined] drain_gray_stack_no_evacuation + 4516 at sgen-marksweep-drain-gray-stack.h:278 [opt]<br>    frame #10: 0x000000010cc95474 mono-sgen64`drain_gray_stack(queue=0x000000010ce05c20) + 84 at sgen-marksweep.c:1213 [opt]<br>    frame #11: 0x000000010cc8c848 mono-sgen64`finish_gray_stack [inlined] sgen_drain_gray_stack + 19 at sgen-gc.c:544 [opt]<br>    frame #12: 0x000000010cc8c835 mono-sgen64`finish_gray_stack(generation=<unavailable>, ctx=<unavailable>) + 69 at sgen-gc.c:1072 [opt]<br>    frame #13: 0x000000010cc8bf3c mono-sgen64`major_finish_collection(reason="LOS overflow", old_next_pin_slot=294, forced=0) + 108 at sgen-gc.c:1924 [opt]<br>    frame #14: 0x000000010cc89691 mono-sgen64`major_do_collection(reason="LOS overflow", forced=0) + 81 at sgen-gc.c:2049 [opt]<br>    frame #15: 0x000000010cc88b10 mono-sgen64`sgen_perform_collection(requested_size=32800, generation_to_collect=1, reason="LOS overflow", wait_to_finish=0) + 432 at sgen-gc.c:2266 [opt]<br>    frame #16: 0x000000010cc90059 mono-sgen64`sgen_los_alloc_large_inner(vtable=0x00007fdd28922da0, size=32800) + 89 at sgen-los.c:368 [opt]<br>    frame #17: 0x000000010cc7f179 mono-sgen64`sgen_alloc_obj_nolock(vtable=0x00007fdd28922da0, size=<unavailable>) + 105 at sgen-alloc.c:199 [opt]<br>    frame #18: 0x000000010cc7c9db mono-sgen64`mono_gc_alloc_vector(vtable=0x00007fdd28922da0, size=32800, max_length=4096) + 123 at sgen-mono.c:1735 [opt]<br>    frame #19: 0x000000010d1b37a6<br>    frame #20: 0x000000010ebc4f9f mscorlib.dll.dylib`System_Collections_Generic_List_1_T_REF__ctor_int + 159<br>    frame #21: 0x00000001113f620a<br>    frame #22: 0x000000010f7d1c78<br>    frame #23: 0x0000000113bcd6ba<br>    frame #24: 0x000000010ca85800 mono-sgen64`mono_jit_runtime_invoke(method=<unavailable>, obj=0x000000010d4d9218, params=<unavailable>, exc=<unavailable>) + 1776 at mini-runtime.c:2578 [opt]<br>    frame #25: 0x000000010cc45252 mono-sgen64`mono_runtime_invoke(method=0x00007fdd29926748, obj=0x000000010d4d9218, params=0x00007fff53184f20, exc=0x0000000000000000) + 130 at object.c:2897 [opt]<br>    frame #26: 0x000000010cc4ba52 mono-sgen64`mono_runtime_invoke_array(method=<unavailable>, obj=<unavailable>, params=<unavailable>, exc=<unavailable>) + 1522 at object.c:4423 [opt]<br>    frame #27: 0x000000010cbbc7e1 mono-sgen64`ves_icall_InternalInvoke(method=<unavailable>, this_arg=<unavailable>, params=<unavailable>, exc=<unavailable>) + 705 at icall.c:2856 [opt]<br>    frame #28: 0x000000010f743254<br>    frame #29: 0x000000010ee4547c mscorlib.dll.dylib`System_Reflection_MonoCMethod_DoInvoke_object_System_Reflection_BindingFlags_System_Reflection_Binder_object___System_Globalization_CultureInfo + 220<br>    frame #30: 0x000000010ee45607 mscorlib.dll.dylib`System_Reflection_MonoCMethod_Invoke_System_Reflection_BindingFlags_System_Reflection_Binder_object___System_Globalization_CultureInfo + 55<br>    frame #31: 0x000000010ee3c8d0 mscorlib.dll.dylib`System_Reflection_ConstructorInfo_Invoke_object__ + 96<br>    frame #32: 0x00000001113f78a5<br><br><br></div></div></div></div>
<br>_______________________________________________<br>
Mono-osx mailing list<br>
<a href="mailto:Mono-osx@lists.ximian.com">Mono-osx@lists.ximian.com</a><br>
<a href="http://lists.ximian.com/mailman/listinfo/mono-osx" rel="noreferrer" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-osx</a><br>
<br></blockquote></div><br></div>