<div dir="ltr">  Yes.<br><div><br></div><div>       Zoltan</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Aug 15, 2013 at 1:23 AM, Bassam Tabbara <span dir="ltr"><<a href="mailto:bassam@symform.com" target="_blank">bassam@symform.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div style="word-wrap:break-word">
<div style="font-size:14px;font-family:Calibri,sans-serif">
If I disable the assert the application continues to work and completes:</div>
<div style="font-size:14px;font-family:Calibri,sans-serif">
<br>
</div>
<div style="font-size:14px;font-family:Calibri,sans-serif">
<a href="https://github.com/symform/mono/commit/859aa7fcd0fcb9017f45d8bfb59cfe8907f413d3" target="_blank">https://github.com/symform/mono/commit/859aa7fcd0fcb9017f45d8bfb59cfe8907f413d3</a></div>
<div style="font-size:14px;font-family:Calibri,sans-serif">
<br>
</div>
<div style="font-size:14px;font-family:Calibri,sans-serif">
If I understand things correctly if the patching fails on the call-site the trampoline will remain in place and the code will have to get JITed again on the next invocation. This seems like a better outcome than asserting. </div>

<div style="font-size:14px;font-family:Calibri,sans-serif">
<br>
</div>
<div style="font-size:14px;font-family:Calibri,sans-serif">
Does this seem like a reasonable workaround until you find the root cause here?</div>
<div style="font-size:14px;font-family:Calibri,sans-serif">
<br>
</div>
<span style="font-size:14px;font-family:Calibri,sans-serif">
<div style="border-right:medium none;padding-right:0in;padding-left:0in;padding-top:3pt;text-align:left;font-size:11pt;border-bottom:medium none;font-family:Calibri;border-top:#b5c4df 1pt solid;padding-bottom:0in;border-left:medium none">

<span style="font-weight:bold">From: </span>Bassam Tabbara <<a href="mailto:bassam@symform.com" target="_blank">bassam@symform.com</a>><br>
<span style="font-weight:bold">Date: </span>Wednesday, August 14, 2013 1:07 PM<div><div class="h5"><br>
<span style="font-weight:bold">To: </span>Zoltan Varga <<a href="mailto:vargaz@gmail.com" target="_blank">vargaz@gmail.com</a>><br>
<span style="font-weight:bold">Cc: </span>"<a href="mailto:mono-devel-list@lists.ximian.com" target="_blank">mono-devel-list@lists.ximian.com</a>" <<a href="mailto:mono-devel-list@lists.ximian.com" target="_blank">mono-devel-list@lists.ximian.com</a>><br>

<span style="font-weight:bold">Subject: </span>Re: [Mono-dev] Assert in mini-arm.c<br>
</div></div></div><div><div class="h5">
<div><br>
</div>
<div>
<div style="font-size:14px;font-family:Calibri,sans-serif;word-wrap:break-word">
<div>I tried increasing MIN_PAGES in mono-codeman.c to 32 and still didn't help.</div>
<div><br>
</div>
<div>Is there another workaround that could help here?</div>
<div><br>
</div>
<span>
<div style="border-right:medium none;padding-right:0in;padding-left:0in;padding-top:3pt;text-align:left;font-size:11pt;border-bottom:medium none;font-family:Calibri;border-top:#b5c4df 1pt solid;padding-bottom:0in;border-left:medium none">

<span style="font-weight:bold">From: </span>Bassam Tabbara <<a href="mailto:bassam@symform.com" target="_blank">bassam@symform.com</a>><br>
<span style="font-weight:bold">Date: </span>Wednesday, August 14, 2013 12:26 AM<br>
<span style="font-weight:bold">To: </span>Zoltan Varga <<a href="mailto:vargaz@gmail.com" target="_blank">vargaz@gmail.com</a>><br>
<span style="font-weight:bold">Cc: </span>"<a href="mailto:mono-devel-list@lists.ximian.com" target="_blank">mono-devel-list@lists.ximian.com</a>" <<a href="mailto:mono-devel-list@lists.ximian.com" target="_blank">mono-devel-list@lists.ximian.com</a>><br>

<span style="font-weight:bold">Subject: </span>Re: [Mono-dev] Assert in mini-arm.c<br>
</div>
<div><br>
</div>
<div>
<div style="font-size:14px;font-family:Calibri,sans-serif;word-wrap:break-word">
<div>
<div>
<div>Here it is. Note that this run was compiled with BIND_ROOM set to 4 as you recommended.</div>
<div><br>
</div>
<div>#2  0x00172c44 in arm_patch (code=0x407b05c8 "\357\376\377\353\367\377\377\352\340A-\351\004\320M\342",  target=0x5da1ebe0 "\r\300\240\341\360_-\351(\320M\342$\311\377\353") at mini-arm.c:3530</div>

</div>
<div><br>
</div>
<div>(gdb) x/10i code</div>
<div>   0x407b05c8:  bl      0x407b018c</div>
<div>   0x407b05cc:  b       0x407b05b0</div>
<div>   0x407b05d0:  push    {r5, r6, r7, r8, lr}</div>
<div>   0x407b05d4:  sub     sp, sp, #4</div>
<div>   0x407b05d8:  mov     r5, r0</div>
<div>   0x407b05dc:  mov     r6, r1</div>
<div>   0x407b05e0:  mov     r7, r2</div>
<div>   0x407b05e4:  orr     r0, r5, r6</div>
<div>   0x407b05e8:  and     r0, r0, #3</div>
<div>   0x407b05ec:  cmp     r0, #0</div>
<div><br>
</div>
<div>(gdb) x/10i target</div>
<div>   0x5da1ebe0:  mov     r12, sp</div>
<div>   0x5da1ebe4:  push    {r4, r5, r6, r7, r8, r9, r10, r11, r12, lr}</div>
<div>   0x5da1ebe8:  sub     sp, sp, #40     ; 0x28</div>
<div>   0x5da1ebec:  bl      0x5da11084</div>
<div>   0x5da1ebf0:  add     r1, sp, #0</div>
<div>   0x5da1ebf4:  str     r0, [r1, #4]</div>
<div>   0x5da1ebf8:  ldr     r12, [r0]</div>
<div>   0x5da1ebfc:  str     r12, [r1]</div>
<div>   0x5da1ec00:  str     r1, [r0]</div>
<div>   0x5da1ec04:  str     sp, [r1, #12]</div>
</div>
<div><br>
</div>
<div>Let me know if there is anything else I can provide. </div>
<div><br>
</div>
<span>
<div style="border-right:medium none;padding-right:0in;padding-left:0in;padding-top:3pt;text-align:left;font-size:11pt;border-bottom:medium none;font-family:Calibri;border-top:#b5c4df 1pt solid;padding-bottom:0in;border-left:medium none">

<span style="font-weight:bold">From: </span>Zoltan Varga <<a href="mailto:vargaz@gmail.com" target="_blank">vargaz@gmail.com</a>><br>
<span style="font-weight:bold">Date: </span>Tuesday, August 13, 2013 5:15 PM<br>
<span style="font-weight:bold">To: </span>Bassam Tabbara <<a href="mailto:bassam@symform.com" target="_blank">bassam@symform.com</a>><br>
<span style="font-weight:bold">Cc: </span>"<a href="mailto:mono-devel-list@lists.ximian.com" target="_blank">mono-devel-list@lists.ximian.com</a>" <<a href="mailto:mono-devel-list@lists.ximian.com" target="_blank">mono-devel-list@lists.ximian.com</a>><br>

<span style="font-weight:bold">Subject: </span>Re: [Mono-dev] Assert in mini-arm.c<br>
</div>
<div><br>
</div>
<div>
<div>
<div dir="ltr">I meant frame #2, i.e.
<div><span style="font-family:'Lucida Console';font-size:9.090909004211426px">#2  0x00172ca8 in arm_patch</span><br>
</div>
<div><span style="font-family:'Lucida Console';font-size:9.090909004211426px">   </span></div>
<div><span style="font-family:'Lucida Console';font-size:9.090909004211426px">  Zoltan</span></div>
</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On Wed, Aug 14, 2013 at 2:14 AM, Zoltan Varga <span dir="ltr">
<<a href="mailto:vargaz@gmail.com" target="_blank">vargaz@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">Hi,
<div><br>
</div>
<div>Can you see whats at 'code' and 'target' at frame #3, i.e.</div>
<div>x/10i code</div>
<div>x/10i target</div>
<span><font color="#888888">
<div><br>
</div>
<div>     Zoltan</div>
</font></span></div>
<div>
<div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On Wed, Aug 14, 2013 at 1:48 AM, Bassam Tabbara <span dir="ltr">
<<a href="mailto:bassam@symform.com" target="_blank">bassam@symform.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="font-size:14px;font-family:Calibri,sans-serif;word-wrap:break-word">
<div>Unfortunately that did not help. Still seeing the problem. I'm still working on a test case but I'm not having much luck so far in getting an isolated repro.</div>
<div><br>
</div>
<div>I was able to get a debugger attached to the process right when handle_thunk asserts, and there were 6 threads with the following call stack:</div>
<div><br>
</div>
<div><font face="Lucida Console" style="font-size:medium"><span style="font-size:9px">Thread 5 (Thread 0x558ff460 (LWP 9201)):</span></font>
<div style="font-family:Arial;font-size:medium"><font face="Lucida Console"><span style="font-size:9px">#0  handle_thunk (method=0x0, domain=0x4ce44e58, absolute=1, code=0x427f8f08 "Q\364\377\353\367\377\377\352",</span></font></div>

<div style="font-family:Arial;font-size:medium"><font face="Lucida Console"><span style="font-size:9px">    target=0x511f02a0 "\r\300\240\341\360_-\351(\320M\342k\323\377\353", dyn_code_mp=0x0) at mini-arm.c:3373</span></font></div>

<div style="font-family:Arial;font-size:medium"><font face="Lucida Console"><span style="font-size:9px">#1  0x00172764 in arm_patch_general (method=0x0, domain=0x0, code=0x427f8f08 "Q\364\377\353\367\377\377\352",</span></font></div>

<div style="font-family:Arial;font-size:medium"><font face="Lucida Console"><span style="font-size:9px">    target=0x511f02a0 "\r\300\240\341\360_-\351(\320M\342k\323\377\353", dyn_code_mp=0x0) at mini-arm.c:3425</span></font></div>

<div style="font-family:Arial;font-size:medium"><font face="Lucida Console"><span style="font-size:9px">#2  0x00172ca8 in arm_patch (code=0x427f8f08 "Q\364\377\353\367\377\377\352", target=0x511f02a0 "\r\300\240\341\360_-\351(\320M\342k\323\377\353") at mini-arm.c:3536</span></font></div>

<div style="font-family:Arial;font-size:medium"><font face="Lucida Console"><span style="font-size:9px">#3  0x001830bc in mono_arch_patch_callsite (method_start=0x427f8e90 "\r\300\240\341\360_-\351(\320M\342", code_ptr=0x427f8f0c "\367\377\377\352",</span></font></div>

<div style="font-family:Arial;font-size:medium"><font face="Lucida Console"><span style="font-size:9px">    addr=0x511f02a0 "\r\300\240\341\360_-\351(\320M\342k\323\377\353") at tramp-arm.c:87</span></font></div>

<div style="font-family:Arial;font-size:medium"><font face="Lucida Console"><span style="font-size:9px">#4  0x0012c5c8 in common_call_trampoline (regs=0x558fd090, code=0x427f8f0c "\367\377\377\352", m=0x2a08a000, tramp=0x2e4bcd80 "x\320\217U", vt=0x0, vtable_slot=0x0,</span></font></div>

<div style="font-family:Arial;font-size:medium"><font face="Lucida Console"><span style="font-size:9px">    need_rgctx_tramp=0) at mini-trampolines.c:673</span></font></div>
<div style="font-family:Arial;font-size:medium"><font face="Lucida Console"><span style="font-size:9px">#5  0x0012c67c in mono_magic_trampoline (regs=0x558fd090, code=0x427f8f0c "\367\377\377\352", arg=0x2a08a000, tramp=0x2e4bcd80 "x\320\217U") at mini-trampolines.c:690</span></font></div>

<div style="font-family:Arial;font-size:medium"><font face="Lucida Console"><span style="font-size:9px">#6  0x403f5060 in ?? ()</span></font></div>
<div style="font-family:Arial;font-size:medium"><font face="Lucida Console"><span style="font-size:9px">#7  0x403f5060 in ?? ()</span></font><br>
</div>
</div>
<div><font face="Lucida Console"><span style="font-size:9px"><br>
</span></font></div>
<div>
<div>All 6 threads where in a trampoline. The method in frame 4 was "mono_thread_interruption_checkpoint" for all six threads. </div>
</div>
<div><br>
</div>
<div>Does this give you any more clues into what is going on? </div>
<div><br>
</div>
<div>This is blocking our upgrade to mono-3-0 unfortunately. Any help will be greatly appreciated.</div>
<div><br>
</div>
<span>
<div style="border-right:medium none;padding-right:0in;padding-left:0in;padding-top:3pt;text-align:left;font-size:11pt;border-bottom:medium none;font-family:Calibri;border-top:#b5c4df 1pt solid;padding-bottom:0in;border-left:medium none">

<span style="font-weight:bold">From: </span>Zoltan Varga <<a href="mailto:vargaz@gmail.com" target="_blank">vargaz@gmail.com</a>><br>
<span style="font-weight:bold">Date: </span>Tuesday, August 13, 2013 3:20 AM<br>
<span style="font-weight:bold">To: </span>Bassam Tabbara <<a href="mailto:bassam@symform.com" target="_blank">bassam@symform.com</a>><br>
<span style="font-weight:bold">Cc: </span>"<a href="mailto:mono-devel-list@lists.ximian.com" target="_blank">mono-devel-list@lists.ximian.com</a>" <<a href="mailto:mono-devel-list@lists.ximian.com" target="_blank">mono-devel-list@lists.ximian.com</a>><br>

<span style="font-weight:bold">Subject: </span>Re: [Mono-dev] Assert in mini-arm.c<br>
</div>
<div>
<div>
<div><br>
</div>
<div>
<div>
<div dir="ltr">Hi,
<div><br>
</div>
<div>  This is a JIT problem, it will be hard to track down without a testcase. You can try changing this line in mono/utils/mono-codeman.c:</div>
<div><br>
</div>
<div>#define BIND_ROOM 8</div>
<div><br>
</div>
<div>to</div>
<div><br>
</div>
<div>#define BIND_ROOM 4</div>
<div><br>
</div>
<div>It might fix the issue.</div>
<div><br>
</div>
<div>           Zoltan</div>
</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On Tue, Aug 13, 2013 at 7:44 AM, Bassam Tabbara <span dir="ltr">
<<a href="mailto:bassam@symform.com" target="_blank">bassam@symform.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="font-size:14px;font-family:Calibri,sans-serif;word-wrap:break-word">
<div>Folks,</div>
<div><br>
</div>
<div>Any insights into why the assert would trigger? Is this a resource exhaustion issue, or is specific to certain code that is being JITed? I need someone to point me in the right direction. I'm able to reproduce this but only in the context of our application.
 This did not happen with the mono-2-10 branch.</div>
<div><br>
</div>
<div>Thanks!</div>
<div>Bassam </div>
<div><br>
</div>
<span>
<div style="border-right:medium none;padding-right:0in;padding-left:0in;padding-top:3pt;text-align:left;font-size:11pt;border-bottom:medium none;font-family:Calibri;border-top:#b5c4df 1pt solid;padding-bottom:0in;border-left:medium none">

<span style="font-weight:bold">From: </span>Bassam Tabbara <<a href="mailto:bassam@symform.com" target="_blank">bassam@symform.com</a>><br>
<span style="font-weight:bold">Date: </span>Friday, August 9, 2013 10:36 AM<br>
<span style="font-weight:bold">To: </span>"<a href="mailto:mono-devel-list@lists.ximian.com" target="_blank">mono-devel-list@lists.ximian.com</a>" <<a href="mailto:mono-devel-list@lists.ximian.com" target="_blank">mono-devel-list@lists.ximian.com</a>><br>

<span style="font-weight:bold">Subject: </span>[Mono-dev] Assert in mini-arm.c<br>
</div>
<div><br>
</div>
<div>
<div style="font-size:14px;font-family:Calibri,sans-serif;word-wrap:break-word">
<div>Hello,</div>
<div><br>
</div>
<div>I'm seeing the following assert on an armv5tel using latest from master:</div>
<div><br>
</div>
<div><a href="http://pastebin.com/raw.php?i=CLDXxiPy" target="_blank">http://pastebin.com/raw.php?i=CLDXxiPy</a></div>
<div><br>
</div>
<div>I'm trying to get an isolated repro but it proving to be elusive. In our full test runs we see this all the time. </div>
<div><br>
</div>
<div>Any tips on how to debug this further? </div>
<div><br>
</div>
<div>Thanks!</div>
<span><font color="#888888">
<div>Bassam</div>
</font></span></div>
</div>
</span></div>
<br>
_______________________________________________<br>
Mono-devel-list mailing list<br>
<a href="mailto:Mono-devel-list@lists.ximian.com" target="_blank">Mono-devel-list@lists.ximian.com</a><br>
<a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
</div>
</span></div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</span></div>
</div>
</span></div>
</div>
</div></div></span>
</div>

</blockquote></div><br></div>