aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2014-09-08Merge branch 'lucafavatella/improve-cpu_sup-error-when-slow-port-init' into ↵Marcus Arendt
maint * lucafavatella/improve-cpu_sup-error-when-slow-port-init: Clarify error for slow `cpu_sup` port init
2014-09-05common_test: update Makefile for ct_property_test module.Hans Nilsson
2014-09-05Merge branch 'ia/public_key/utf8-doc' into maintIngela Anderton Andin
* ia/public_key/utf8-doc: public_key: Correct documentation of ASN-1 type utf8String
2014-09-05public_key: Correct documentation of ASN-1 type utf8StringIngela Anderton Andin
2014-09-04Merge branch 'egil/fix-llvm-cc-warnings/OTP-12138' into maintBjörn-Egil Dahlberg
* egil/fix-llvm-cc-warnings/OTP-12138: odbc: Suppress signedness warnings for 'char *' ic: Suppress unused-value warning erts: Fix tentative-definition-incomplete-type erts: Don't redefine '_XOPEN_SOURCE'
2014-09-04Merge branch 'egil/maps-with-doc-tests/OTP-12137' into maintBjörn-Egil Dahlberg
* egil/maps-with-doc-tests/OTP-12137: stdlib: Test maps:with/2 stdlib: Document maps:with/2
2014-09-03Merge branch 'arekinath/ssh/aes-ctr' into maintMarcus Arendt
* arekinath/ssh/aes-ctr: ssh: check if ssh client supports newer cipher- and MAC-algorithms SSH: only enable ciphers/MACs when they are available in crypto SSH: add ssh_to_openssh test for ciphers and macs SSH: documentation update for new algos SSH: add support for aes128-ctr and hmac-sha2-256
2014-09-03ssh: update vsn.mkHans Nilsson
2014-09-03inets: update vsn.mkHans Nilsson
2014-09-03common_test: update vsn.mkHans Nilsson
2014-09-02ssh: Add simple experimental property test suitesHans Nilsson
2014-09-02inets: Add simple experimental property test suiteHans Nilsson
2014-09-02common_test: Add experimental module ct_property_testHans Nilsson
This module may change without warning...
2014-09-02ssh: check if ssh client supports newer cipher- and MAC-algorithmsMarcus Arendt
2014-09-01Merge branch 'bjorn/compiler/fix-scope-bug/OTP-12132' into maintBjörn Gustavsson
* bjorn/compiler/fix-scope-bug/OTP-12132: sys_core_fold: Eliminate name capture bug
2014-09-01sys_core_fold: Eliminate name capture bugBjörn Gustavsson
The scope is supposed to contain all variables that are currently live. We need this information for certain optimizations to avoid capturing a name (a name that is in the scope must be renamed; for an example, see move_let_into_expr/2 or any function that calls sub_subst_scope/1). We also use the scope to optimize sub_del_var/2 and sub_is_val/2. When optimizing case expressions, the scope could be reset to an empty list (because sub_new/0 was called instead of sub_new/1). That could cause name capture if inlining was turned on. As simple way to force this bug is to uncomment the "-define(DEBUG, 1)." near the beginning of the file. Without this correction, most files in the test suite fail to compile.
2014-09-01Merge branch 'nox/erl_scan-fix-column-tracking' into maintMarcus Arendt
* nox/erl_scan-fix-column-tracking: Properly track column numbers in erl_scan
2014-09-01Merge branch 'siri/ct-runtime-deps/OTP-12037' into maintSiri Hansen
* siri/ct-runtime-deps/OTP-12037: [ct] Update runtime dependencies towards test_server
2014-09-01Merge branch 'maint-17' into maintMarcus Arendt
Conflicts: OTP_VERSION
2014-08-29Clarify error for slow `cpu_sup` port initLuca Favatella
I noticed that running an R16B03-1 node on an overloaded host produced log entries like the following ones: ``` 2014-08-22 21:52:31 =ERROR REPORT==== Error in process <0.24112.3> on node '[email protected]' with exit value: {{case_clause,{data,4711}},[{cpu_sup,get_uint32_measurement,2,[{file,"cpu_sup.erl"},{line,227}]},{cpu_sup,measurement_server_loop,1,[{file,"cpu_sup.erl"},{line,585}]}]} ``` ``` ===== ALIVE Fri Aug 22 21:50:14 CEST 2014 [os_mon] cpu supervisor port (cpu_sup): Erlang has closed [os_mon] cpu supervisor port (cpu_sup): Erlang has closed [os_mon] cpu supervisor port (cpu_sup): Erlang has closed [os_mon] cpu supervisor port (cpu_sup): Erlang has closed ===== ALIVE Fri Aug 22 22:07:46 CEST 2014 ``` I performed a code inspection on the `cpu_sup` module and I concluded that the `case_clause` error shows a small issue in the `cpu_sup` module, that happens when the port used in `cpu_sup` is slow to start - as it may happen on an overloaded node. The `cpu_sup` `gen_server` process keeps in its state the pid of an unlinked process (called "measurement server" - see `cpu_sup:init/1`), in order to do dirty stuff (e.g. reading the filesystem, running OS commands) and start_link-ing & managing the connected process to a port (called "port server" - see `measurement_server_init/0`). So the process organization looks like this: ``` cpu_sup - measurement server - port server - port ``` When the measurement server start_links the port server (see `port_server_start/0`) it sends a `{self(), ?ping}` message to it and expects an answer within 6s, otherwise it returns `{error, timeout}` rather than the pid. This has two issues: * The measurement server keeps `{error, ...}` in its state as if it were a pid - that makes no sense; * A late `{Pid, {data,4711}}` response may arrive in the mailbox of the measurement server, that will believe it to be a request to be processed, causing a `case_clause` error. This commit teaches the measurement server to check the success of the initialization of the port server by matching on the return value of `port_server_start/0` (renamed to `port_server_start_link/0` for the sake of clarity) in order to fail earlier and with an error clearer than `{case_clause,{data,4711}}`. In such case I expect the measurement server to be restarted by the `cpu_sup` `gen_server` (see `handle_call/3`) - as before. BTW It is not clear to me when the `handle_info({'EXIT', _Port, Reason}, State)` may be called (the `cpu_sup` `gen_server` does not link to the measurement server) but I am leaving it.
2014-08-29Merge branch 'ia/public_key/dialyzer' into maintIngela Anderton Andin
* ia/public_key/dialyzer: public_key: Fix spec and documentation for pkix_crls_validate public_key: Fix spec and documentation for PBES
2014-08-29Prepare releaseErlang/OTP
2014-08-28Merge branch 'dgud/stdlib/format_status_terminate/OTP-11967' into maintDan Gudmundsson
* dgud/stdlib/format_status_terminate/OTP-11967: stdlib: Call format_status even if terminate callback crashes
2014-08-28Merge branch 'michaelkschmidt/ssh_bug_fix' into maintMarcus Arendt
* michaelkschmidt/ssh_bug_fix: Test Other Clauses of start_shell Fix SSH CLI when using custom "shell" option
2014-08-28Merge branch 'tuncer/misspelled-another' into maintMarcus Arendt
* tuncer/misspelled-another: Fix misspellings of 'another'
2014-08-28Avoid timing issue in schema transaction when node is stoppingDan Gudmundsson
By doing an abort, the create_table can be restarted if a node go down during the transaction. {badarg, [{erlang,link,[undefined],[]}, {mnesia_controller, wait_for_schema_commit_lock,0, [{file,"mnesia_controller.erl"}, {line,303}]}, {mnesia_schema,prepare_commit,3, [{file,"mnesia_schema.erl"}, {line,1838}]}, {mnesia_tm,commit_participant,6, [{file,"mnesia_tm.erl"}, {line,1669}]}]}}},
2014-08-28SSH: only enable ciphers/MACs when they are available in cryptoAlex Wilson
Also adjusts tests to only expect a positive outcome when crypto supports the relevant base ciphers/MACs.
2014-08-27public_key: Fix spec and documentation for pkix_crls_validateIngela Anderton Andin
2014-08-27public_key: Fix spec and documentation for PBESIngela Anderton Andin
2014-08-27Merge branch 'lpgauth/fix_httpc_doc_typo' into maintBruce Yinhe
* lpgauth/fix_httpc_doc_typo: Fix typo in documentation /header_as_is/headers_as_is/
2014-08-27Merge branch 'ia/odbc/win-test' into maintIngela Anderton Andin
* ia/odbc/win-test: odbc: Condition test case to avoid permission issues in Vista
2014-08-26stdlib: Test maps:with/2Björn-Egil Dahlberg
2014-08-26stdlib: Document maps:with/2Björn-Egil Dahlberg
2014-08-26odbc: Condition test case to avoid permission issues in VistaIngela Anderton Andin
2014-08-26Merge branch 'kittee/maps_only' into maintMarcus Arendt
* kittee/maps_only: maps:only/2 -> maps:with/2 add maps:only/2
2014-08-26Merge branch 'ia/public_key/PBES2/OTP-11915' into maintIngela Anderton Andin
* ia/public_key/PBES2/OTP-11915: public_key: Add encodeing functionality for PBES1 and PBES2 public_key: Add PBES1 decoding support
2014-08-25Merge branch 'vladdu/jinterface_fun_equals' into maintBruce Yinhe
OTP-12121 * vladdu/jinterface_fun_equals: jinterface: fix bug in equality for OtpErlangFun
2014-08-25Fix misspellings of 'another'Tuncer Ayaz
2014-08-25Merge branch 'ia/inets/ipv6-tests' into maintIngela Anderton Andin
* ia/inets/ipv6-tests: inets: Enable ipv6 tests for httpd
2014-08-25public_key: Add encodeing functionality for PBES1 and PBES2Ingela Anderton Andin
2014-08-22Test Other Clauses of start_shellMichael K. Schmidt
start_shell() is called by exec, so test those cases as well. Also add support for passing a fun to exec.
2014-08-22inets: Enable ipv6 tests for httpdIngela Anderton Andin
2014-08-22public_key: Add PBES1 decoding supportIngela Anderton Andin
2014-08-22Merge branch 'marcus/OTP-17.2.1/mergefix' into maintMarcus Arendt
* marcus/OTP-17.2.1/mergefix: Updated OTP version Update release notes
2014-08-22Update release notesErlang/OTP
2014-08-21Merge branch 'egil/proc_lib-optimizations/OTP-12060' into maintBjörn-Egil Dahlberg
* egil/proc_lib-optimizations/OTP-12060: stdlib: Update dependencies to erts-6.2 erts: Update preloaded erlang.beam stdlib: Use erlang:fun_info_mfa/1 in proc_lib:init_p/3 erts: Test erlang:fun_info_mfa/1 erts: Introduce erlang:fun_info_mfa/1
2014-08-21Merge branch 'nox/reedr-logging/OTP-12115' into maintLukas Larsson
* nox/reedr-logging/OTP-12115: Add number of entries to mnesia copy debug message Add thread index to allocator enomem dump slogan Add run queue index to process dump info Add missing error string to syslog logging in epmd Demote rare debug slogan of message discarding to debug build
2014-08-21Merge branch 'ia/ssl/dialyzer-certificate_requests' into maintIngela Anderton Andin
* ia/ssl/dialyzer-certificate_requests: ssl: Fix boolean expression ssl: Fix broken contract
2014-08-21Merge branch 'lucafavatella/accept-ip-in-net_adm-names' into maintMarcus Arendt
* lucafavatella/accept-ip-in-net_adm-names: Refactor erl_epmd:names/1 Accept inet:ip_address() in net_adm:names/1
2014-08-21dialyzer, hipe: Fix a bug concerning is_record/2,3Hans Bolinder
Also fixed some cases where Dialyzer could crash due to reaching system limits.