Erlang/OTP 18.0-rc2 is available for testing

classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

Erlang/OTP 18.0-rc2 is available for testing

Kenneth Lundin-5
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
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Reply | Threaded
Open this post in threaded view
|

Re: Erlang/OTP 18.0-rc2 is available for testing

Loïc Hoguin-3
Everything looks fine after running the test suites.

Good job everyone involved!

On 05/13/2015 02: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:
>       o scheduler specific timer wheels,
>       o scheduler specific BIF timer management,
>       o 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 <http://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
> [hidden email]
> http://erlang.org/mailman/listinfo/erlang-questions
>

--
Loïc Hoguin
http://ninenines.eu
_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Reply | Threaded
Open this post in threaded view
|

Re: Erlang/OTP 18.0-rc2 is available for testing

Jesper Louis Andersen-2
In reply to this post by Kenneth Lundin-5
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 <[hidden email]> 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
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions




--
J.

_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Reply | Threaded
Open this post in threaded view
|

Re: Erlang/OTP 18.0-rc2 is available for testing

Jesper Louis Andersen-2
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 <[hidden email]> 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 <[hidden email]> 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
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions




--
J.



--
J.

_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Reply | Threaded
Open this post in threaded view
|

Re: Erlang/OTP 18.0-rc2 is available for testing

Steve Vinoski-2
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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions




--
J.



--
J.

_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions



_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Reply | Threaded
Open this post in threaded view
|

Re: Erlang/OTP 18.0-rc2 is available for testing

Rickard Green-2
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.

Regards,
Rickard

On Wed, May 13, 2015 at 3:24 PM, Steve Vinoski <[hidden email]> 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
> <[hidden email]> 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
>> <[hidden email]> 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 <[hidden email]>
>>> 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
>>>> [hidden email]
>>>> http://erlang.org/mailman/listinfo/erlang-questions
>>>>
>>>
>>>
>>>
>>> --
>>> J.
>>
>>
>>
>>
>> --
>> J.
>>
>> _______________________________________________
>> erlang-questions mailing list
>> [hidden email]
>> http://erlang.org/mailman/listinfo/erlang-questions
>>
>
>
> _______________________________________________
> erlang-questions mailing list
> [hidden email]
> http://erlang.org/mailman/listinfo/erlang-questions
>



--
Rickard Green, Erlang/OTP, Ericsson AB
_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Reply | Threaded
Open this post in threaded view
|

Re: Erlang/OTP 18.0-rc2 is available for testing

Michael Truog
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 <[hidden email]> 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
>> <[hidden email]> 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
>>> <[hidden email]> 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 <[hidden email]>
>>>> 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
>>>>> [hidden email]
>>>>> http://erlang.org/mailman/listinfo/erlang-questions
>>>>>
>>>>
>>>>
>>>> --
>>>> J.
>>>
>>>
>>>
>>> --
>>> J.
>>>
>>> _______________________________________________
>>> erlang-questions mailing list
>>> [hidden email]
>>> http://erlang.org/mailman/listinfo/erlang-questions
>>>
>>
>> _______________________________________________
>> erlang-questions mailing list
>> [hidden email]
>> http://erlang.org/mailman/listinfo/erlang-questions
>>
>
>

_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Reply | Threaded
Open this post in threaded view
|

Re: Erlang/OTP 18.0-rc2 is available for testing

Rickard Green-2
On Wed, May 13, 2015 at 7:29 PM, Michael Truog <[hidden email]> wrote:

> 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
>

No plans for that. This since the usage of the wheel has been changed,
and by this the main reason for increasing the size is gone.

Regards,
Rickard
--
Rickard Green, Erlang/OTP, Ericsson AB
_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Reply | Threaded
Open this post in threaded view
|

Re: Erlang/OTP 18.0-rc2 is available for testing

Max Lapshin-2
Steve, are your dirty nif patches included?

_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Reply | Threaded
Open this post in threaded view
|

Re: Erlang/OTP 18.0-rc2 is available for testing

Steve Vinoski-2
Yes, the patch you're referring to merged a few weeks ago, but note that 18.0-rc2 doesn't work for dirty schedulers as discussed earlier in the thread due to an issue related to timer wheel changes. Rickard and I will have a fix soon.

--steve

On Fri, May 15, 2015 at 1:03 PM, Max Lapshin <[hidden email]> wrote:
Steve, are your dirty nif patches included?

_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions



_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Reply | Threaded
Open this post in threaded view
|

Re: Erlang/OTP 18.0-rc2 is available for testing

Rickard Green-2
On Fri, May 15, 2015 at 8:18 PM, Steve Vinoski <[hidden email]> wrote:

> Yes, the patch you're referring to merged a few weeks ago, but note that
> 18.0-rc2 doesn't work for dirty schedulers as discussed earlier in the
> thread due to an issue related to timer wheel changes. Rickard and I will
> have a fix soon.
>
> --steve
>
> On Fri, May 15, 2015 at 1:03 PM, Max Lapshin <[hidden email]> wrote:
>>
>> Steve, are your dirty nif patches included?
>>
>> _______________________________________________
>> erlang-questions mailing list
>> [hidden email]
>> http://erlang.org/mailman/listinfo/erlang-questions
>>
>

There is now a fix (b7c9657) for this in the master branch. Thanks to
Steve Vinoski!

Regards,
Rickard
--
Rickard Green, Erlang/OTP, Ericsson AB
_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions