<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">If "erl -smp disable" is being used I
      assume it is the problem at <a class="moz-txt-link-freetext" href="https://github.com/erlang/otp/pull/518">https://github.com/erlang/otp/pull/518</a><br>
      <br>
      On 10/31/2014 06:57 PM, Daniel Goertzen wrote:<br>
    </div>
    <blockquote
cite="mid:CAJCf5Ry4LQe0AW1ZsDLa_nPSAvwtg8B3fUeWYvMkS+qjBCJNjw@mail.gmail.com"
      type="cite">
      <div dir="ltr">Thanks for trying it out.  That gist was a bit of a
        hash; apologies.
        <div><br>
        </div>
        <div>I made all the functions static and also put load and
          unload as NULL in ERL_NIF_INIT, but I get the same results.
          <div><br>
          </div>
          <div>I ran it under valgrind and got...</div>
          <div><br>
          </div>
          <div><br>
          </div>
          <div><font face="courier new, monospace"># ERL_LIBS=..
              valgrind --trace-children=yes erl<br>
            </font></div>
          <div><font face="courier new, monospace"><br>
            </font></div>
          <div><font face="courier new, monospace">...</font></div>
          <div><font face="courier new, monospace"><br>
            </font></div>
          <div><span
              id="docs-internal-guid-59ed9054-6908-5351-14ae-10195e0e3de0">
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">Eshell V6.2  (abort
                    with ^G)</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">1> </font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">1>
                    dlibusb:mytest_io().</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029== Thread 18:</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029== Invalid read
                    of size 4</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029==    at
                    0x8190B56: process_main (beam_hot.h:935)</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029==    by
                    0x80E565E: sched_thread_func (erl_process.c:7719)</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029==    by
                    0x820982B: thr_wrapper (ethread.c:106)</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029==    by
                    0x40FFF46: start_thread (in /lib/<a
                      moz-do-not-send="true"
                      href="http://libpthread-2.20.so">libpthread-2.20.so</a>)</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029==    by
                    0x41FE97D: clone (in /lib/<a moz-do-not-send="true"
                      href="http://libc-2.20.so">libc-2.20.so</a>)</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029==  Address
                    0xfffffffe is not stack'd, malloc'd or (recently)
                    free'd</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029== </font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029== </font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029== Process
                    terminating with default action of signal 11
                    (SIGSEGV)</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029==  Access not
                    within mapped region at address 0xFFFFFFFE</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029==    at
                    0x8190B56: process_main (beam_hot.h:935)</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029==    by
                    0x80E565E: sched_thread_func (erl_process.c:7719)</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029==    by
                    0x820982B: thr_wrapper (ethread.c:106)</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029==    by
                    0x40FFF46: start_thread (in /lib/<a
                      moz-do-not-send="true"
                      href="http://libpthread-2.20.so">libpthread-2.20.so</a>)</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029==    by
                    0x41FE97D: clone (in /lib/<a moz-do-not-send="true"
                      href="http://libc-2.20.so">libc-2.20.so</a>)</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029==  If you
                    believe this happened as a result of a stack</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029==  overflow in
                    your program's main thread (unlikely but</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029==  possible),
                    you can try to increase the size of the</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029==  main thread
                    stack using the --main-stacksize= flag.</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029==  The main
                    thread stack size used in this run was 8388608.</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029== </font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029== HEAP SUMMARY:</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029==     in use at
                    exit: 9,020,474 bytes in 157 blocks</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029==   total heap
                    usage: 211 allocs, 54 frees, 9,490,700 bytes
                    allocated</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029== </font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029== LEAK SUMMARY:</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029==    definitely
                    lost: 0 bytes in 0 blocks</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029==    indirectly
                    lost: 0 bytes in 0 blocks</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029==      possibly
                    lost: 14,143 bytes in 41 blocks</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029==    still
                    reachable: 9,006,331 bytes in 116 blocks</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029==
                            suppressed: 0 bytes in 0 blocks</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029== Rerun with
                    --leak-check=full to see details of leaked memory</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029== </font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029== For counts of
                    detected and suppressed errors, rerun with: -v</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">==9029== ERROR
                    SUMMARY: 1 errors from 1 contexts (suppressed: 0
                    from 0)</font></span></p>
              <p dir="ltr"
                style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span
style="color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    face="courier new, monospace">Killed</font></span></p>
              <div><span
style="font-size:15px;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><br>
                </span></div>
              <div><span
style="font-size:15px;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><br>
                </span></div>
              <div><span
style="font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Line
                  935 of my beam_hot.h is...</span></div>
              <div><span
style="font-size:15px;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><br>
                </span></div>
              <div><span
style="vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font
                    style="font-size:15.4545450210571px" color="#000000"
                    face="Arial">
                  </font><font color="#000000" face="courier new,
                    monospace">OpCase(is_integer_fx): { BeamInstr* next;
                    PreFetch(2, next); IsInteger(xb(Arg(1)),
                    ClauseFail()); // line 935 NextPF(2, next); }</font></span><span
style="font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">
                </span></div>
              <div><span
style="font-size:15px;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><br>
                </span></div>
              <div><span
style="font-size:15px;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><br>
                </span></div>
              <div><span
style="font-size:15px;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">I
                  know little about beam internals. I don't know if this
                  is useful.</span></div>
              <div><span
style="font-size:15px;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><br>
                </span></div>
            </span></div>
        </div>
        <div class="gmail_extra"><br>
          <div class="gmail_quote">On Fri, Oct 31, 2014 at 4:05 PM,
            Steve Vinoski <span dir="ltr"><<a moz-do-not-send="true"
                href="mailto:vinoski@ieee.org" target="_blank">vinoski@ieee.org</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"><br>
                <div class="gmail_extra"><br>
                  <div class="gmail_quote"><span class="">On Fri, Oct
                      31, 2014 at 4:33 PM, Daniel Goertzen <span
                        dir="ltr"><<a moz-do-not-send="true"
                          href="mailto:daniel.goertzen@gmail.com"
                          target="_blank">daniel.goertzen@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 dir="ltr">I am seeing a segfault that seems
                          to be related to dirty schedulers.  I've
                          reduced the fault to the erlang and C nif
                          module below which executes the same nif with
                          either the io dirty scheduler, the cpu dirty
                          scheduler, or the normal erlang scheduler.
                          <div><br>
                          </div>
                          <div>
                            <div><br>
                            </div>
                            <div>When I start the emulator and run
                              either dirty nif, I get a segfault. ( see <a
                                moz-do-not-send="true"
                                href="https://gist.github.com/goertzenator/6237e0200a5f7bf22976"
                                target="_blank">https://gist.github.com/goertzenator/6237e0200a5f7bf22976</a>)</div>
                          </div>
                        </div>
                      </blockquote>
                      <div><br>
                      </div>
                    </span>
                    <div>I found it hard to make sense of what's in that
                      gist due to the formatting, so I took your code
                      and built it myself. When I ran it, it failed in
                      your NIF load function, but it failed in a way
                      that didn't make sense because all your function
                      does is return 0. Then I realized none of your C
                      functions were declared static, which means they
                      are global, and I suspected your load() function
                      was clashing with some other function of the same
                      name. I made all your C functions static, rebuilt,
                      and then ran everything and it seems like it
                      worked:</div>
                    <div><br>
                    </div>
                    <div>> c(dlibusb).</div>
                    <div>Reading symbols for shared libraries . done</div>
                    <div>{ok,dlibusb}</div>
                    <div>2> dlibusb:mytest_cpu().<br>
                    </div>
                    <div>[ok,ok,ok,ok,ok,ok,ok,ok,ok,ok,ok]</div>
                    <div>3> dlibusb:mytest_io().</div>
                    <div>[ok,ok,ok,ok,ok,ok,ok,ok,ok,ok,ok]</div>
                    <div>4> dlibusb:mytest_none().</div>
                    <div>[ok,ok,ok,ok,ok,ok,ok,ok,ok,ok,ok] </div>
                    <span class="HOEnZb"><font color="#888888">
                        <div><br>
                        </div>
                        <div>--steve</div>
                      </font></span></div>
                </div>
              </div>
            </blockquote>
          </div>
          <br>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
erlang-questions mailing list
<a class="moz-txt-link-abbreviated" href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a>
<a class="moz-txt-link-freetext" href="http://erlang.org/mailman/listinfo/erlang-questions">http://erlang.org/mailman/listinfo/erlang-questions</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>