aboutsummaryrefslogtreecommitdiffstats
path: root/lib
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-17Merge pull request #1463 from bjorng/bjorn/simplify-building-lcnt/OTP-14407Björn Gustavsson
Simplify building a lock-counting emulator
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-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 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 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-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-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-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-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-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-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
2017-05-11removed ct:pal call in ssl_connectionJoe DeVivo
2017-05-11Merge branch 'bjorn/compiler/cover'Björn Gustavsson
* bjorn/compiler/cover: compiler.cover: Remove deleted module sys_pre_expand Cover the first clause of v3_core:bin_expand_string/4 compile_SUITE: Test the r16, r17, r18, r19 options erl_bifs: Remove pure BIFs serving no useful purpose erl_bifs: Remove erlang:hash/2 from list of pure functions
2017-05-11Merge pull request #1449 from bjorng/bjorn/future-proof-exceptionsBjörn Gustavsson
Make calls to get_stacktrace/0 future-proof OTP-14400
2017-05-11snmp_generic: Future-proof exception handling codeBjörn Gustavsson
In the future, erlang:get_stacktrace/0 will probably only work inside a the 'catch' block of a 'try' expression. Future-proof the code by rewriting the old-style catch to a try...catch.
2017-05-11qlc: Future-proof exception handling codeBjörn Gustavsson
In the future, erlang:get_stacktrace/0 will probably only work inside a the 'catch' block of a 'try' expression. Future-proof the code by rewriting the old-style catch to a try...catch.
2017-05-11ct_util: Stop using get_stacktrace/0 inappropriatelyBjörn Gustavsson
The return value of erlang:get_stacktrace/0 is not defined when called like this: try Expr of Pattern -> erlang:get_stacktrace() end Currently, the stacktrace will be from a random earlier error. In a future release, it may be []. Note: We can remove the entire 'case' statement because CTHReason can never be an atom.
2017-05-11Merge pull request #1451 from bjorng/bjorn/compiler/nowarn_obsolete_guardBjörn Gustavsson
Correct description of nowarn_obsolete_guard By default, warnings for obsolete guards are turned on. Correct the description to make that clear.
2017-05-11Merge branch 'ingela/ssl/windows-cuddle'Ingela Anderton Andin
* ingela/ssl/windows-cuddle: ssl: Only run sslv2 reject tests on old OpenSSL version ssl: Try to workaround OpenSSL windows obscurities
2017-05-11Update compile.xmlBjörn Gustavsson
2017-05-10Merge branch 'maint'Rickard Green
* maint: Updated OTP version Update release notes inets: Prepare for release inets: Mend ipv6_host_with_brackets option
2017-05-10Merge branch 'maint-18' into maintRickard Green
* maint-18: Updated OTP version Update release notes inets: Prepare for release inets: Mend ipv6_host_with_brackets option
2017-05-10Merge tag 'OTP-18.2.4.1' into maint-18Rickard Green
=== OTP-18.2.4.1 === Changed Applications: - inets-6.1.1.1 Unchanged Applications: - asn1-4.0.1 - common_test-1.11.2 - compiler-6.0.2 - cosEvent-2.2 - cosEventDomain-1.2 - cosFileTransfer-1.2 - cosNotification-1.2 - cosProperty-1.2 - cosTime-1.2 - cosTransactions-1.3 - crypto-3.6.2 - debugger-4.1.1 - dialyzer-2.8.2 - diameter-1.11.1 - edoc-0.7.17 - eldap-1.2 - erl_docgen-0.4.1 - erl_interface-3.8.1 - erts-7.2.1 - et-1.5.1 - eunit-2.2.12 - gs-1.6 - hipe-3.14 - ic-4.4 - jinterface-1.6.1 - kernel-4.1.1 - megaco-3.18 - mnesia-4.13.2 - observer-2.1.1 - odbc-2.11.1 - orber-3.8 - os_mon-2.4 - ose-1.1 - otp_mibs-1.1 - parsetools-2.1.1 - percept-0.8.11 - public_key-1.1 - reltool-0.7 - runtime_tools-1.9.2 - sasl-2.6.1 - snmp-5.2.1 - ssh-4.2.1 - ssl-7.2 - stdlib-2.7 - syntax_tools-1.7 - test_server-3.9.1 - tools-2.8.2 - typer-0.9.10 - webtool-0.9 - wx-1.6 - xmerl-1.3.9 * tag 'OTP-18.2.4.1': Updated OTP version Update release notes inets: Prepare for release inets: Mend ipv6_host_with_brackets option Conflicts: OTP_VERSION lib/inets/doc/src/notes.xml lib/inets/src/inets_app/inets.appup.src lib/inets/vsn.mk otp_versions.table
2017-05-10common_test: Future-proof exception handling codeBjörn Gustavsson
In the future, erlang:get_stacktrace/0 will probably only work inside a the 'catch' block of a 'try' expression. Future-proof the code by rewriting the old-style catch to a try...catch.
2017-05-10compiler.cover: Remove deleted module sys_pre_expandBjörn Gustavsson
2017-05-10Merge branch 'sverker/ets-select-replace-const'Sverker Eriksson
* sverker/ets-select-replace-const: stdlib: Add examples for ets:select_replace docs erts: Fix ets:select_replace with {const, NewTuple}
2017-05-10stdlib: Add examples for ets:select_replace docsSverker Eriksson