[erlang-questions] Erlang/OTP 18.0-rc2 is available for testing

Steve Vinoski vinoski@REDACTED
Wed May 13 15:24:22 CEST 2015


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.

It's got something to do with timer wheel:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x1113 of process 16360]
0x000000010017480c in erts_check_next_timeout_time (esdp=0x10370a440) at
beam/time.c:280
280    if (tiw->true_next_timeout_time)
(gdb) bt
#0  0x000000010017480c in erts_check_next_timeout_time (esdp=0x10370a440)
at beam/time.c:280
#1  0x000000010014c5bb in scheduler_wait (fcalls=0x105b47b20,
esdp=0x10370a440, rq=0x101e47140) at beam/erl_process.c:2902
#2  0x0000000100145e1a in schedule (p=0x0, calls=0) at
beam/erl_process.c:9340
#3  0x0000000100000e6e in process_main () at beam/beam_emu.c:1253
#4  0x0000000100142428 in sched_dirty_cpu_thread_func (vesdp=0x10370a440)
at beam/erl_process.c:7946
#5  0x000000010033e7a1 in thr_wrapper (vtwd=0x7fff5fbfee88) at
pthread/ethread.c:113
#6  0x00007fff8eae3268 in _pthread_body () from
/usr/lib/system/libsystem_pthread.dylib
#7  0x00007fff8eae31e5 in _pthread_start () from
/usr/lib/system/libsystem_pthread.dylib
#8  0x00007fff8eae141d in thread_start () from
/usr/lib/system/libsystem_pthread.dylib
#9  0x0000000000000000 in ?? ()
(gdb) p tiw
$1 = (ErtsTimerWheel *) 0x0

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.

--steve


On Wed, May 13, 2015 at 9:06 AM, Jesper Louis Andersen <
jesper.louis.andersen@REDACTED> wrote:

> And edited to add, I know the version given by sha ce96ab6 compiled
> (OTP-18.0-rc1-503-gce96ab6).
>
>
> On Wed, May 13, 2015 at 3:04 PM, Jesper Louis Andersen <
> jesper.louis.andersen@REDACTED> wrote:
>
>> I'll just attach this here, but on my machine the BEAM emulator segfaults
>> under the build if passed the --enable-dirty-schedulers option:
>>
>> git checkout -b t OTP-18.0-rc2
>> git clean -dfxq
>> ./otp_build autoconf
>> ./configure --enable-dirty-schedulers --prefix=/usr/local/stow/$(git
>> describe)
>> make -j 10
>>
>> 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.
>>
>> Is this confirmable by anyone else, just to rule out my machine from the
>> loop?
>>
>>
>> On Wed, May 13, 2015 at 1:48 PM, Kenneth Lundin <kenneth@REDACTED>
>> wrote:
>>
>>> Erlang/OTP 18.0-rc2 is available for testing.
>>>
>>> This is the second and last release candidate before the final OTP 18.0
>>> product release in June 2015.
>>>
>>> Between the 18.0 rc1 and 18.0 rc 2 and the final release there will be
>>> new updates of
>>> the master branch with corrections and minor new features.
>>> Occasionally there might be new tags which we in that
>>> case will communicate and ask you to test.
>>>
>>> Erlang/OTP 18.0 is a new major release with new features, quite a few
>>> (characteristics) improvements, as well as a few incompatibilities.
>>>
>>> See the Release Notes and the documentation for more details.
>>>
>>> We would like to ask you to build and test this release candidate and
>>> send us
>>> your feedback as soon as possible, so that we can make the necessary
>>> corrections before OTP 18.0.
>>>
>>> The release contains many changes; thus, some unexpected
>>> incompatibilities
>>> or issues may have slipped through our tests.
>>> Please try to build and run your current products/applications and let
>>> us
>>> know about any problems.
>>>
>>>
>>> *IMPORTANT INFO when building your own code with this OTP release*
>>> Since erlang:now is deprecated your build might stop if you are using
>>> "warnings as errors".
>>> To let the build through you can turn of warnings for deprecated
>>> functions
>>> by setting an environment variable like this:
>>>   export ERL_COMPILER_OPTIONS=nowarn_deprecated_function
>>>
>>> Some highlights of the release are:
>>>
>>>    - dialyzer: The -dialyzer() attribute can be used for suppressing
>>>    warnings
>>>    in a module by specifying functions or warning options.
>>>    It can also be used for requesting warnings in a module.
>>>    - erts: The time functionality has been extended. This includes a
>>>    new API for
>>>    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.
>>>    For more information see the Time and Time Correction chapter of the
>>>    ERTS User's Guide. Here is a link
>>>    http://www.erlang.org/documentation/doc-7.0-rc2/erts-7.0/doc/html/time_correction.html
>>>    - erts: Beside the API changes and time warp modes a lot of
>>>    scalability and performance improvements regarding time management has been
>>>    made. Examples are:
>>>       - scheduler specific timer wheels,
>>>       - scheduler specific BIF timer management,
>>>       - parallel retrieval of monotonic time and system time on OS:es
>>>       that support it.
>>>    - erts: The previously introduced "eager check I/O" feature is now
>>>    enabled by default.
>>>    - 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.
>>>    - ssl: Remove default support for SSL-3.0 and added padding check
>>>    for TLS-1.0 due to the Poodle vulnerability.
>>>    - ssl: Remove default support for RC4 cipher suites, as they are
>>>    consider too weak.
>>>    - stdlib: Allow maps for supervisor flags and child specs
>>>
>>>
>>> You can find the Release Notes with more detailed info at
>>>
>>>   http://www.erlang.org/download/OTP-18.0-rc2.README
>>>
>>> You find the source code at github.com in the official Erlang
>>> repository.
>>>
>>> Git tag OTP-18.0-rc2
>>>
>>> https://github.com/erlang/otp/tree/OTP-18.0-rc2
>>>
>>> You can also read the documentation on-line here:
>>> (see the Release Notes mentioned above for release notes which
>>> are not updated in the doc, but the new functionality is)
>>>
>>> http://www.erlang.org/documentation/doc-7.0-rc2/doc/
>>>
>>> We also want to thank those that sent us patches, suggestions and bug
>>> reports.
>>>
>>> The Erlang/OTP Team at Ericsson
>>>
>>> _______________________________________________
>>> erlang-questions mailing list
>>> erlang-questions@REDACTED
>>> http://erlang.org/mailman/listinfo/erlang-questions
>>>
>>>
>>
>>
>> --
>> J.
>>
>
>
>
> --
> J.
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20150513/8531f719/attachment.htm>


More information about the erlang-questions mailing list