aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2017-05-17proc_lib: Don't call erlang:get_stacktrace/0 twiceBjörn Gustavsson
proc_lib calls erlang:get_stacktrace/0 twice, which is unnecessary, and potentially unsafe since there are calls to many functions in between. Any of the calls could potentially cause and catch an exception, invalidating the stacktrace. Only call erlang:get_stacktrace/0 once, and pass the result to the second place where it is needed.
2017-05-17escript: Pick up stacktrace a soon as possibleBjörn Gustavsson
It happens to work today, but it is potentially unsafe to call io:format/2 before calling erlang:get_stacktrace/0. Make the code safe by calling erlang:get_stacktrace/0 directly after catching the exception.
2017-05-17Merge pull request #1465 from bjorng/bjorn/tools/fix-lcnt-docBjörn Gustavsson
Fix a few minor issues in the lcnt documentation
2017-05-17code_SUITE: Remove unused functionsBjörn Gustavsson
2017-05-17Eliminate warning for variable 'Config' being unusedBjörn Gustavsson
2017-05-17Merge pull request #1463 from bjorng/bjorn/simplify-building-lcnt/OTP-14407Björn Gustavsson
Simplify building a lock-counting emulator
2017-05-17compile_SUITE: Don't create a directory called 'core'Björn Gustavsson
A core dump can't be created with the name 'core' if there is a directory named 'core'. Rename the test case from core/1 to core_pp/1 so that the directory name can be the same as the test case name. It also makes sense to use a less generic name for the test case.
2017-05-17Fix a few minor issues in the lcnt documentationBjörn Gustavsson
We generally avoid abbreviations such as "e.g." and "i.e." in the documentation. We write "Erlang", not "erlang" (except when referring to the erlang module).
2017-05-17Don't mention R12BBjörn Gustavsson
2017-05-17Add a link to the Reference Manual from the example pageBjörn Gustavsson
When doing a Google search for "bit syntax", you could end up on the programming examples page about bit syntax. The example page has some reference material, but is far from complete. Therefore, add a link to the page about bit syntax in the Reference Manual. https://bugs.erlang.org/browse/ERL-387
2017-05-16Merge branch 'ingela/dtls/opts'Ingela Anderton Andin
* ingela/dtls/opts: ssl: Adopt setopts and getopts for DTLS
2017-05-16ssl: Adopt setopts and getopts for DTLSIngela Anderton Andin
2017-05-16Merge branch 'lukas/erts/trace_recv_esdp_bug/OTP-14411'Lukas Larsson
* lukas/erts/trace_recv_esdp_bug/OTP-14411: erts: the esdp is not always available in matchspec
2017-05-16Merge pull request #1452 from niku/patch-1Ingela Andin
Revise minor notation in httpc:request/[4,5]
2017-05-16Merge branch 'ingela/remove-debug'Ingela Anderton Andin
* ingela/remove-debug: ssl: Remove debug printout
2017-05-16ssl: Remove debug printoutIngela Anderton Andin
2017-05-16Merge PR-1457 from goertzenator/enif_monitor_typesSverker Eriksson
enif_monitor_process() typo
2017-05-16Merge branch 'hans/ssh/ssh_file_user_key_checks_ec_size/OTP-14410'Hans Nilsson
2017-05-16Merge branch 'hans/ssh/test_ext_info_extension/OTP-14361'Hans Nilsson
2017-05-16Merge branch 'hans/ssh/enable_auth_methods_for_clients/OTP-14399'Hans Nilsson
2017-05-16Merge pull request #1436 from garazdawi/lukas/erts/remove_unused_functionsLukas Larsson
erts: Remove old unused functions
2017-05-16erts: Remove old unused functionsLukas Larsson
The functions have been found using: https://github.com/caolanm/callcatcher
2017-05-16Merge pull request #1435 from SalikhovDinislam/static_funcLukas Larsson
erts: Make erts_schedule_proc2port_signal static
2017-05-16lcnt_SUITE: Add a smoke test for running lock-countingBjörn Gustavsson
2017-05-16Update instructions for how to start the lock-counting VMBjörn Gustavsson
2017-05-16Teach erlexec the -emu_type optionBjörn Gustavsson
Add the option -emu_type to start an emulator of a certain type. For exampe, "-emu_type lcnt" will start beam.lcnt.smp. Any string will be accepted after -emu_type. If there is no corresponding emulator, there will be an error similar to: erlexec: The emulator '.../bin/x86_64-unknown-linux-gnu/beam.foo.smp' does not exist. On Windows, there is an undocumented option "-debug". Remove that option, because -emu_type can be used instead.
2017-05-16Let --enable-lock-counter build an additional emulatorBjörn Gustavsson
"./configure --enable-lock-counter" would modify the behavior of the default emulator (usually SMP). To make lock counting more accessible, change --enable-lock-counter to build an additional emulator in the same way as: (cd erts/emulator && make lcnt) (The next commit will make it easier to start the built lock-counter emulator.)
2017-05-16Merge branch 'ingela/dtls/replay-protect/OTP-14077'Ingela Anderton Andin
* ingela/dtls/replay-protect/OTP-14077: dtls: Implement replay protection
2017-05-16dtls: Implement replay protectionIngela Anderton Andin
See RFC 6347 section 3.3
2017-05-16Merge pull request #1453 from bjorng/bjorn/catch-warning/OTP-14401Björn Gustavsson
Warn for potentially unsafe use of get_stacktrace/0
2017-05-15ssh: ssh_file:user_key/2 checks ec keytypeHans Nilsson
2017-05-15Do not discard stacktraces on gen_server exitsJosé Valim
Prior to this patch, the stacktrace of an error or exit in a callback would always be discarded in crash reports. For example, an exit(crashed) in handle_call/3 would emit: =CRASH REPORT==== 10-May-2017::14:15:50 === crasher: initial call: gen_server_SUITE:init/1 pid: <0.201.0> registered_name: [] exception exit: crashed in function gen_server:terminate/8 (src/gen_server.erl, line 828) Note that the stacktrace is pointing to the gen_server internal terminate implementation that calls exit/1. This patch uses erlang:raise/3 so the stacktrace is not lost, allowing proc_lib to show the class, reason and stacktrace coming from the user implementation (in this case gen_server_SUITE): =CRASH REPORT==== 10-May-2017::14:16:44 === crasher: initial call: gen_server_SUITE:init/1 pid: <0.197.0> registered_name: [] exception exit: crashed in function gen_server_SUITE:handle_call/3 (gen_server_SUITE.erl, line 1529) This change is completely backwards compatible as using erlang:raise/3 will still emit the same exit reason to any linked process and monitor as before.
2017-05-15Merge pull request #1407 from eltex-ecss/auto_hibernate_timeoutIngela Andin
Add option hibernate_after to gen_server, gen_statem and gen_event. Also added to the deprecated gen_fsm behaviour. OTP14405
2017-05-15Merge pull request #1322 from tsloughter/binary_uri_encodeIngela Andin
Add unicode binary support to http_uri functions OTP-14404
2017-05-15Merge branch 'ingela/ssl/bench-certs'Ingela Anderton Andin
* ingela/ssl/bench-certs: ssl: Disable Server Name verification in bench tests for now
2017-05-15ssl: Disable Server Name verification in bench tests for nowIngela Anderton Andin
2017-05-15Fix minor typo and notation in httpc:request/[4,5]niku
2017-05-12use ErlNifMonitor instead of ErlDrvMonitor for enif_monitor/demonitorDaniel Goertzen
2017-05-12ssh: Tests for ext-info extension (ext-info-c)Hans Nilsson
2017-05-12ssh: Tests for ext-info extension (ext-info-s)Hans Nilsson
2017-05-12ssh: Better error checking for option 'auth_methods'Hans Nilsson
2017-05-12ssh: Doc option 'auth_methods' for clientHans Nilsson
2017-05-12ssh: Option 'auth_methods' available not only in server but also in clientHans Nilsson
2017-05-12Don't crash in end_per_testcase/2 in code_SUITE:on_load_embedded/1Björn Gustavsson
2017-05-12Merge branch 'maint'Hans Nilsson
Conflicts: OTP_VERSION lib/inets/vsn.mk lib/ssl/vsn.mk
2017-05-12Merge branch 'maint-19' into maintHans Nilsson
2017-05-12Warn for potentially unsafe use of get_stacktrace/0Björn Gustavsson
erlang:get_stacktrace/0 returns the stacktrace for the latest exception. The problem is that the stacktrace is kept until the next exception occurs. If the last exception was a 'function_clause' or a 'badarg', the arguments for the call are also kept forever. The arguments can be terms of any size (potentially huge). In a future release, we would like to only allow erlang:get_stacktrace/0 from within a 'try' expression. That would make it possible to clear the stacktrace when the 'try' expression is exited. The 'catch' expression has no natural end where the stacktrace could be cleared. The stacktrace could be cleared at the end of the function that the 'catch' occurs in, but that would cause problems in the following scenario (from real life, but simplified): try ... catch _:_ -> io:format(...), io:format("~p\n", [erlang:get_stacktrace()]) end. %% In io.erl. format(Fmt, Args) -> Res = case ... of SomePattern -> catch... ...; SomeOtherPattern -> %% Output the formatted string here ... end, clear_stacktrace(), %% Inserted by compiler. Res. The call to io:format() would always clear the stacktrace before it could be retrieved. That problem could be solved by tightning the scope in which the stacktrace is kept, but the rules for how long erlang:get_stacktrace/0 would work would become complicated. Therefore, the solution we suggest for a future major release of OTP is that erlang:get_stacktrace/0 will return [] if it is called outside the 'catch' part of a 'try' expression. To help users prepare, introduce a warning when it is likely that erlang:get_stacktrace/0 will always return an empty list, for example in this code: catch error(foo), Stk = erlang:get_stacktrace() or in this code: try Expr catch _:_ -> ok end, Stk = erlang:get_stacktrace()
2017-05-11Updated OTP versionOTP-19.3.4Erlang/OTP
2017-05-11Prepare releaseErlang/OTP
2017-05-11Merge branch 'hans/inets/ftp_recv_chunk_close/OTP-14391' into maint-19Erlang/OTP
* hans/inets/ftp_recv_chunk_close/OTP-14391: inets: add testcase to ftp_SUITE Try doing three consecutive chunked receive with some changed timing in the ending sequence inets: Try fix ftp recv_chunk timing issue