<div class="gmail_extra">Filed under <a href="https://bugzilla.xamarin.com/show_bug.cgi?id=8905" target="_blank" style="font-family:arial,sans-serif;font-size:12.727272033691406px">https://bugzilla.xamarin.com/show_bug.cgi?id=8905</a><br style="font-family:arial,sans-serif;font-size:12.727272033691406px">
<br>Thanks.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Dec 12, 2012 at 5:06 AM, Andrii Nakryiko <span dir="ltr"><<a href="mailto:andrii.nakryiko@gmail.com" target="_blank">andrii.nakryiko@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div>From readme:</div><div><br></div><div><div>mono-jit-crash-repro</div>
<div>====================</div><div><br></div><div>Reproduction of problems with Mono JIT crashing.</div><div><br></div><div>To run reproduce, compile the solution and run **run.sh** script which will start the binary in a loop until the program crashes. It usually doesn't take long for crash or segmentation fault to occur, though it can take up to few thousands runs.</div>


<div><br></div><div>There are two classes that reproduces two bugs:</div><div><br></div><div>  * **ReproJitCrash.cs** reproduces JIT crash most of the times. Rarely it also causes segmentation fault without any stack traces.</div>


<div>  * **ReproSegFault.cs** reproduces segmenation fault with no stack trace (as mentioned previously).</div><div>  </div><div>The only difference between those two cases is in using *struct* vs *class* with **using** statement (see LockReleaserStruct/LockReleaserClass).</div>


<div><br></div><div>Also, it seems essential to have Monitor.Enter/Monitor.Exit, without them it's not reproducible (or at least I didn't have patience to wait for crash to happen).</div></div><div><br></div><div>


Hope that helps to identify and fix the problem.</div></blockquote></div><br></div>