Age | Commit message (Collapse) | Author |
|
maint
* lucafavatella/improve-cpu_sup-error-when-slow-port-init:
Clarify error for slow `cpu_sup` port init
|
|
|
|
* ia/public_key/utf8-doc:
public_key: Correct documentation of ASN-1 type utf8String
|
|
|
|
* 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'
|
|
* egil/maps-with-doc-tests/OTP-12137:
stdlib: Test maps:with/2
stdlib: Document maps:with/2
|
|
* 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
|
|
|
|
|
|
|
|
|
|
|
|
This module may change without warning...
|
|
|
|
* bjorn/compiler/fix-scope-bug/OTP-12132:
sys_core_fold: Eliminate name capture bug
|
|
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.
|
|
* nox/erl_scan-fix-column-tracking:
Properly track column numbers in erl_scan
|
|
* siri/ct-runtime-deps/OTP-12037:
[ct] Update runtime dependencies towards test_server
|
|
Conflicts:
OTP_VERSION
|
|
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.
|
|
* ia/public_key/dialyzer:
public_key: Fix spec and documentation for pkix_crls_validate
public_key: Fix spec and documentation for PBES
|
|
|
|
* dgud/stdlib/format_status_terminate/OTP-11967:
stdlib: Call format_status even if terminate callback crashes
|
|
* michaelkschmidt/ssh_bug_fix:
Test Other Clauses of start_shell
Fix SSH CLI when using custom "shell" option
|
|
* tuncer/misspelled-another:
Fix misspellings of 'another'
|
|
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}]}]}}},
|
|
Also adjusts tests to only expect a positive outcome when
crypto supports the relevant base ciphers/MACs.
|
|
|
|
|
|
* lpgauth/fix_httpc_doc_typo:
Fix typo in documentation /header_as_is/headers_as_is/
|
|
* ia/odbc/win-test:
odbc: Condition test case to avoid permission issues in Vista
|
|
|
|
|
|
|
|
* kittee/maps_only:
maps:only/2 -> maps:with/2
add maps:only/2
|
|
* ia/public_key/PBES2/OTP-11915:
public_key: Add encodeing functionality for PBES1 and PBES2
public_key: Add PBES1 decoding support
|
|
OTP-12121
* vladdu/jinterface_fun_equals:
jinterface: fix bug in equality for OtpErlangFun
|
|
|
|
* ia/inets/ipv6-tests:
inets: Enable ipv6 tests for httpd
|
|
|
|
start_shell() is called by exec, so test those cases as well.
Also add support for passing a fun to exec.
|
|
|
|
|
|
* marcus/OTP-17.2.1/mergefix:
Updated OTP version
Update release notes
|
|
|
|
* 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
|
|
* 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
|
|
* ia/ssl/dialyzer-certificate_requests:
ssl: Fix boolean expression
ssl: Fix broken contract
|
|
* lucafavatella/accept-ip-in-net_adm-names:
Refactor erl_epmd:names/1
Accept inet:ip_address() in net_adm:names/1
|
|
Also fixed some cases where Dialyzer could crash due to reaching
system limits.
|