<div dir="ltr">Hi Jesper, I see this too. It must be due to a very recent change, as I've been successfully building and running quite a bit recently from master with dirty schedulers enabled.<div><br></div><div>It's got something to do with timer wheel:<div><br></div><div><div>Program received signal SIGSEGV, Segmentation fault.</div><div>[Switching to Thread 0x1113 of process 16360]</div><div>0x000000010017480c in erts_check_next_timeout_time (esdp=0x10370a440) at beam/time.c:280</div><div>280<span class="" style="white-space:pre"> </span> if (tiw->true_next_timeout_time)</div><div>(gdb) bt</div><div>#0 0x000000010017480c in erts_check_next_timeout_time (esdp=0x10370a440) at beam/time.c:280</div><div>#1 0x000000010014c5bb in scheduler_wait (fcalls=0x105b47b20, esdp=0x10370a440, rq=0x101e47140) at beam/erl_process.c:2902</div><div>#2 0x0000000100145e1a in schedule (p=0x0, calls=0) at beam/erl_process.c:9340</div><div>#3 0x0000000100000e6e in process_main () at beam/beam_emu.c:1253</div><div>#4 0x0000000100142428 in sched_dirty_cpu_thread_func (vesdp=0x10370a440) at beam/erl_process.c:7946</div><div>#5 0x000000010033e7a1 in thr_wrapper (vtwd=0x7fff5fbfee88) at pthread/ethread.c:113</div><div>#6 0x00007fff8eae3268 in _pthread_body () from /usr/lib/system/libsystem_pthread.dylib</div><div>#7 0x00007fff8eae31e5 in _pthread_start () from /usr/lib/system/libsystem_pthread.dylib</div><div>#8 0x00007fff8eae141d in thread_start () from /usr/lib/system/libsystem_pthread.dylib</div><div>#9 0x0000000000000000 in ?? ()</div><div>(gdb) p tiw</div><div>$1 = (ErtsTimerWheel *) 0x0</div></div></div><div><br></div><div>The dirty scheduler threads are restricted in what they can do as compared to normal schedulers, so my guess is that the dirty scheduler threads should not be entering this code.</div><div><br></div><div>--steve</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, May 13, 2015 at 9:06 AM, Jesper Louis Andersen <span dir="ltr"><<a href="mailto:jesper.louis.andersen@gmail.com" target="_blank">jesper.louis.andersen@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">And edited to add, I know the version given by sha ce96ab6 compiled (OTP-18.0-rc1-503-gce96ab6).<div><br></div></div><div class="gmail_extra"><div><div class="h5"><br><div class="gmail_quote">On Wed, May 13, 2015 at 3:04 PM, Jesper Louis Andersen <span dir="ltr"><<a href="mailto:jesper.louis.andersen@gmail.com" target="_blank">jesper.louis.andersen@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">I'll just attach this here, but on my machine the BEAM emulator segfaults under the build if passed the --enable-dirty-schedulers option:<div><br></div><div>git checkout -b t OTP-18.0-rc2</div><div>git clean -dfxq</div><div>./otp_build autoconf</div><div>./configure --enable-dirty-schedulers --prefix=/usr/local/stow/$(git describe)</div><div>make -j 10</div><div><br></div><div>I had expected this to complete and give my an 'erl' with dirty schedulers enabled, but once it gets into 'erlc' compiling it's first binary, the command segfaults. Not passing --enable-dirty-schedulers works.</div><div><br></div><div>Is this confirmable by anyone else, just to rule out my machine from the loop?</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div>On Wed, May 13, 2015 at 1:48 PM, Kenneth Lundin <span dir="ltr"><<a href="mailto:kenneth@erlang.org" target="_blank">kenneth@erlang.org</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr">Erlang/OTP 18.0-<span>rc2</span> is available for testing.<br><br>This is the second and last release candidate before the final OTP 18.0 product release in June 2015.<br><br>Between the 18.0 rc1 and 18.0 rc 2 and the final release there will be new updates of <br>the master branch with corrections and minor new features. <br>Occasionally there might be new tags which we in that<br>case will communicate and ask you to test.<br><br>Erlang/OTP
18.0 is a new major release with new features, quite a few
(characteristics) improvements, as well as a few incompatibilities. <br><br>See the Release Notes and the documentation for more details.<br><br>We would like to ask you to build and test this release candidate and send us <br>your feedback as soon as possible, so that we can make the necessary <br>corrections before OTP 18.0.<br><br>The release contains many changes; thus, some unexpected incompatibilities <br>or issues may have slipped through our tests. <br>Please try to build and run your current products/applications and let us <br>know about any problems.<br><br><b>IMPORTANT INFO when building your own code with this OTP release<br></b><br>Since erlang:now is deprecated your build might stop if you are using<br>"warnings as errors".<br>To let the build through you can turn of warnings for deprecated functions<br>by setting an environment variable like this:<br> export ERL_COMPILER_OPTIONS=nowarn_deprecated_function<br><br>Some highlights of the release are:<br><ul><li>dialyzer: The -dialyzer() attribute can be used for suppressing warnings <br>in a module by specifying functions or warning options. <br>It can also be used for requesting warnings in a module. <br></li><li>erts: The time functionality has been extended. This includes a new API for <br>time,
as well as "time warp" modes which alters the behavior when system time
changes. You are strongly encouraged to use the new API instead of the
old API based on erlang:now/0. erlang:now/0 has been deprecated since it
will always be a scalability bottleneck. <br>For more information see the Time and Time Correction chapter of the ERTS User's Guide. Here is a link <a href="http://www.erlang.org/documentation/doc-7.0-rc2/erts-7.0/doc/html/time_correction.html" target="_blank">http://www.erlang.org/documentation/doc-7.0-rc2/erts-7.0/doc/html/time_correction.html</a> <br></li><li>erts:
Beside the API changes and time warp modes a lot of scalability and
performance improvements regarding time management has been made.
Examples are: </li><ul><li>scheduler specific timer wheels, </li><li>scheduler specific BIF timer management, </li><li>parallel retrieval of monotonic time and system time on OS:es that support it.</li></ul><li>erts: The previously introduced "eager check I/O" feature is now enabled by default.</li><li>erts/compiler:
enhanced support for maps. Big maps new uses a HAMT (Hash Array Mapped
Trie) representation internally which makes them more efficient. There
is now also support for variables as map keys. </li><li>ssl: Remove default support for SSL-3.0 and added padding check for TLS-1.0 due to the Poodle vulnerability.</li><li>ssl: Remove default support for RC4 cipher suites, as they are consider too weak.</li><li>stdlib: Allow maps for supervisor flags and child specs<br></li></ul><br>You can find the Release Notes with more detailed info at<br><br> <a href="http://www.erlang.org/download/OTP-18.0-rc2.README" target="_blank">http://www.erlang.org/download/OTP-18.0-rc2.README</a><br><br>You find the source code at <a href="http://github.com" target="_blank">github.com</a> in the official Erlang repository.<br><br>Git tag OTP-18.0-<span>rc2</span><br><br><a href="https://github.com/erlang/otp/tree/OTP-18.0-rc2" target="_blank">https://github.com/erlang/otp/tree/OTP-18.0-rc2</a><br><br>You can also read the documentation on-line here: <br>(see the Release Notes mentioned above for release notes which <br>are not updated in the doc, but the new functionality is)<br><br><a href="http://www.erlang.org/documentation/doc-7.0-rc2/doc/" target="_blank">http://www.erlang.org/documentation/doc-7.0-rc2/doc/</a><br><br>We also want to thank those that sent us patches, suggestions and bug reports.<br><br>The Erlang/OTP Team at Ericsson</div>
<br></div></div><span>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></span></blockquote></div><span><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div>J.</div>
</font></span></div>
</blockquote></div><br><br clear="all"><div><br></div></div></div><span class="HOEnZb"><font color="#888888">-- <br><div>J.</div>
</font></span></div>
<br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br></div>