<div dir="ltr">I can confirm that the problem does not exist with 4.0 alpha. Thanks, Alexander.<br><br><div>Fabi</div></div><br><div class="gmail_quote">On Mon, 13 Apr 2015 at 19:54 Alexander Köplinger <<a href="mailto:alex.koeplinger@outlook.com">alex.koeplinger@outlook.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div><div dir="ltr"><font color="#000000" face="Calibri,sans-serif">I tried it on the Mono 4.0 alpha and it didn't repro there (it did crash for me on 3.12 as well).</font><br><font color="#000000" face="Calibri,sans-serif">Can you try upgrading to the 4.0 alpha and see if it works for you as well? See <a href="http://www.mono-project.com/docs/getting-started/install/linux/#alpha-update-channel" target="_blank">http://www.mono-project.com/docs/getting-started/install/linux/#alpha-update-channel</a><br></font><br>-- Alex<br> <br><div><hr>From: <a href="mailto:fabian.nagel@gmail.com" target="_blank">fabian.nagel@gmail.com</a><br>Date: Mon, 13 Apr 2015 18:44:52 +0000<br>To: <a href="mailto:mono-devel-list@lists.ximian.com" target="_blank">mono-devel-list@lists.ximian.com</a><br>Subject: [Mono-dev] Possible bug when using array of unsafe pointers</div></div></div><div><div dir="ltr"><div><br><br><div dir="ltr">Dear Devs,<div><br></div><div>I tried to port my .NET C# application to run on Linux (Fedora21) through Mono, but it crashes somewhere in the runtime's garbage collector code with segmentation fault. The minimal code to reproduce the problem is as follows:</div><div><span style="font-family:monospace"><font color="#3364a4">SomeStruct</font></span><span style="color:rgb(51,51,51);font-family:monospace">*</span><span style="color:rgb(51,51,51);font-family:monospace">[]</span><span style="color:rgb(51,51,51);font-family:monospace"> ptrs</span><span style="color:rgb(51,51,51);font-family:monospace"> </span><span style="color:rgb(51,51,51);font-family:monospace">=</span><span style="color:rgb(51,51,51);font-family:monospace"> </span><span style="color:rgb(0,150,149);font-family:monospace">new</span><span style="color:rgb(51,51,51);font-family:monospace"> </span><span style="font-family:monospace"><font color="#3364a4">SomeStruct</font></span><span style="color:rgb(51,51,51);font-family:monospace">*</span><span style="color:rgb(51,51,51);font-family:monospace">[</span><span style="color:rgb(245,125,0);font-family:monospace">1</span><span style="color:rgb(51,51,51);font-family:monospace">]</span><span style="color:rgb(51,51,51);font-family:monospace">;</span><br style="font-family:monospace"><span style="color:rgb(51,51,51);font-family:monospace">ptrs[</span><span style="color:rgb(245,125,0);font-family:monospace">0</span><span style="color:rgb(51,51,51);font-family:monospace">]</span><span style="color:rgb(51,51,51);font-family:monospace"> </span><span style="color:rgb(51,51,51);font-family:monospace">=</span><span style="color:rgb(51,51,51);font-family:monospace"> </span><span style="color:rgb(51,51,51);font-family:monospace">(</span><span style="color:rgb(51,100,164);font-family:monospace">SomeStruct</span><span style="color:rgb(51,51,51);font-family:monospace">*</span><span style="color:rgb(51,51,51);font-family:monospace">)</span><span style="color:rgb(51,100,164);font-family:monospace">Marshal</span><span style="color:rgb(51,51,51);font-family:monospace">.</span><span style="color:rgb(51,51,51);font-family:monospace">AllocHGlobal</span><span style="color:rgb(51,51,51);font-family:monospace">(</span><span style="color:rgb(245,125,0);font-family:monospace">4</span><span style="color:rgb(51,51,51);font-family:monospace">)</span><span style="color:rgb(51,51,51);font-family:monospace">;</span><br style="font-family:monospace"><span style="color:rgb(51,100,164);font-family:monospace">GC</span><span style="color:rgb(51,51,51);font-family:monospace">.</span><span style="color:rgb(51,51,51);font-family:monospace">Collect</span><span style="color:rgb(51,51,51);font-family:monospace">()</span><span style="color:rgb(51,51,51);font-family:monospace">;</span><br></div><div><br></div><div>Here some further information:</div><div><br></div><div><div>[fabian@localhost Debug]$ mono --version</div><div>Mono JIT compiler version 3.12.1 (tarball Fri Mar  6 18:53:33 GMT 2015)</div><div>Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. <a href="http://www.mono-project.com" target="_blank">www.mono-project.com</a></div><div><span style="white-space:pre-wrap">        </span>TLS:           __thread</div><div><span style="white-space:pre-wrap">     </span>SIGSEGV:       altstack</div><div><span style="white-space:pre-wrap">       </span>Notifications: epoll</div><div><span style="white-space:pre-wrap">     </span>Architecture:  amd64</div><div><span style="white-space:pre-wrap">    </span>Disabled:      none</div><div><span style="white-space:pre-wrap">   </span>Misc:          softdebug </div><div><span style="white-space:pre-wrap">  </span>LLVM:          supported, not enabled.</div><div><span style="white-space:pre-wrap">      </span>GC:            sgen</div></div><div><br></div><div><div>Stacktrace:</div><div><br></div><div>  at <unknown> <0xffffffff></div><div>  at (wrapper managed-to-native) System.GC.InternalCollect (int) <IL 0x0000d, 0xffffffff></div><div>  at System.GC.Collect () [0x00000] in /builddir/build/BUILD/mono-3.12.1/mcs/class/corlib/System/GC.cs:51</div><div>  at MMC.Benchmarks.MOT.TestTable (int,bool) [0x00010] in /home/fabian/Documents/New folder/MemoryContext/Benchmarks/MemoryOperationsTest.cs:227</div><div>  at MMC.Program.Main (string[]) [0x0050d] in /home/fabian/Documents/New folder/MemoryContext/Program.cs:379</div><div>  at (wrapper runtime-invoke) <Module>.runtime_invoke_void_object (object,intptr,intptr,intptr) <IL 0x00050, 0xffffffff></div><div><br></div><div>Native stacktrace:</div><div><br></div><div><span style="white-space:pre-wrap">   </span>mono() [0x4b46c2]</div><div><span style="white-space:pre-wrap">        </span>mono() [0x50c893]</div><div><span style="white-space:pre-wrap">        </span>mono() [0x42ab73]</div><div><span style="white-space:pre-wrap">        </span>/lib64/libpthread.so.0(+0x100d0) [0x7f9bba5050d0]</div><div><span style="white-space:pre-wrap">        </span>/lib64/libc.so.6(+0x145e42) [0x7f9bba066e42]</div><div><span style="white-space:pre-wrap">     </span>mono() [0x5dd2f3]</div><div><span style="white-space:pre-wrap">        </span>mono() [0x5dd581]</div><div><span style="white-space:pre-wrap">        </span>mono() [0x5ddd98]</div><div><span style="white-space:pre-wrap">        </span>mono() [0x5d2d08]</div><div><span style="white-space:pre-wrap">        </span>mono() [0x5d2f0f]</div><div><span style="white-space:pre-wrap">        </span>mono() [0x5d4715]</div><div><span style="white-space:pre-wrap">        </span>mono() [0x5d5212]</div><div><span style="white-space:pre-wrap">        </span>mono() [0x5d87d0]</div><div><span style="white-space:pre-wrap">        </span>mono(mono_gc_collect+0x28) [0x5d9078]</div><div><span style="white-space:pre-wrap">    </span>[0x40337eb2]</div><div><br></div><div>Debug info from gdb:</div><div><br></div><div>warning: File "/usr/bin/mono-sgen-gdb.py" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".</div><div>To enable execution of this file add</div><div><span style="white-space:pre-wrap"> </span>add-auto-load-safe-path /usr/bin/mono-sgen-gdb.py</div><div>line to your configuration file "/home/fabian/.gdbinit".</div><div>To completely disable this security protection add</div><div><span style="white-space:pre-wrap">      </span>set auto-load safe-path /</div><div>line to your configuration file "/home/fabian/.gdbinit".</div><div>For more information about this security protection see the</div><div>"Auto-loading safe path" section in the GDB manual.  E.g., run from the shell:</div><div><span style="white-space:pre-wrap">     </span>info "(gdb)Auto-loading safe path"</div><div>[New LWP 27513]</div><div>[Thread debugging using libthread_db enabled]</div><div>Using host libthread_db library "/lib64/libthread_db.so.1".</div><div>0x00007f9bba504c6b in waitpid () from /lib64/libpthread.so.0</div><div>  Id   Target Id         Frame </div><div>  2    Thread 0x7f9bb18ec700 (LWP 27513) "Finalizer" 0x00007f9bb9f55cc7 in sigsuspend () from /lib64/libc.so.6</div><div>* 1    Thread 0x7f9bbb021780 (LWP 27512) "mono" 0x00007f9bba504c6b in waitpid () from /lib64/libpthread.so.0</div><div><br></div><div>Thread 2 (Thread 0x7f9bb18ec700 (LWP 27513)):</div><div>#0  0x00007f9bb9f55cc7 in sigsuspend () from /lib64/libc.so.6</div><div>#1  0x00000000005cf99c in suspend_handler ()</div><div>#2  <signal handler called></div><div>#3  0x00007f9bba50370e in sem_wait () from /lib64/libpthread.so.0</div><div>#4  0x0000000000625587 in mono_sem_wait ()</div><div>#5  0x00000000005a7fcd in finalizer_thread ()</div><div>#6  0x000000000058c370 in start_wrapper ()</div><div>#7  0x000000000062a466 in inner_start_thread ()</div><div>#8  0x00007f9bba4fc52a in start_thread () from /lib64/libpthread.so.0</div><div>#9  0x00007f9bba02122d in clone () from /lib64/libc.so.6</div><div><br></div><div>Thread 1 (Thread 0x7f9bbb021780 (LWP 27512)):</div><div>#0  0x00007f9bba504c6b in waitpid () from /lib64/libpthread.so.0</div><div>#1  0x00000000004b474f in mono_handle_native_sigsegv ()</div><div>#2  0x000000000050c893 in mono_arch_handle_altstack_exception ()</div><div>#3  0x000000000042ab73 in mono_sigsegv_signal_handler ()</div><div>#4  <signal handler called></div><div>#5  0x00007f9bba066e42 in __memcpy_avx_unaligned () from /lib64/libc.so.6</div><div>#6  0x00000000005dd2f3 in copy_object_no_checks ()</div><div>#7  0x00000000005dd581 in major_copy_or_mark_object ()</div><div>#8  0x00000000005ddd98 in major_scan_object ()</div><div>#9  0x00000000005d2d08 in sgen_drain_gray_stack ()</div><div>#10 0x00000000005d2f0f in job_scan_from_registered_roots ()</div><div>#11 0x00000000005d4715 in major_copy_or_mark_from_roots ()</div><div>#12 0x00000000005d5212 in major_do_collection ()</div><div>#13 0x00000000005d87d0 in sgen_perform_collection ()</div><div>#14 0x00000000005d9078 in mono_gc_collect ()</div><div>#15 0x0000000040337eb2 in ?? ()</div><div>#16 0x00000000014ad120 in ?? ()</div><div>#17 0x00007ffd488929e0 in ?? ()</div><div>#18 0x0000000000000000 in ?? ()</div><div><br></div><div>=================================================================</div><div>Got a SIGSEGV while executing native code. This usually indicates</div><div>a fatal error in the mono runtime or one of the native libraries </div><div>used by your application.</div><div>=================================================================</div><div><br></div><div>Aborted (core dumped)</div></div><div><br></div><div><br></div><div>Thanks,</div><div>Fabi</div></div>
<br></div></div></div><div><div dir="ltr"><div>_______________________________________________
Mono-devel-list mailing list
<a href="mailto:Mono-devel-list@lists.ximian.com" target="_blank">Mono-devel-list@lists.ximian.com</a>
<a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a></div>                                       </div></div>
</blockquote></div>