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

Michael Truog <>
Wed May 13 19:29:15 CEST 2015


On 05/13/2015 06:32 AM, Rickard Green wrote:
> I broke it :-/ I'll unbreak it and post a notification here when it
> has been fixed in master. I can not promise exactly when that will
> happen, but at least before the actual release.
When 18.0-rc1 was released the timer wheel size per scheduler was larger (http://erlang.org/pipermail/erlang-bugs/2015-April/004907.html) and the size was decreased due to problems related to the larger size. I was wondering if there are any plans to add an erts option that can be adjusted from the erl command line, so that testing can determine if a larger timer wheel size per scheduler is beneficial.

Thanks,
Michael
>
> Regards,
> Rickard
>
> On Wed, May 13, 2015 at 3:24 PM, Steve Vinoski <> wrote:
>> 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
>> <> 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
>>> <> 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 <>
>>>> 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
>>>>> 
>>>>> http://erlang.org/mailman/listinfo/erlang-questions
>>>>>
>>>>
>>>>
>>>> --
>>>> J.
>>>
>>>
>>>
>>> --
>>> J.
>>>
>>> _______________________________________________
>>> erlang-questions mailing list
>>> 
>>> http://erlang.org/mailman/listinfo/erlang-questions
>>>
>>
>> _______________________________________________
>> erlang-questions mailing list
>> 
>> http://erlang.org/mailman/listinfo/erlang-questions
>>
>
>



More information about the erlang-questions mailing list