Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
maint-19
* sverker/erts/19/memory-leak-terminating-port/OTP-14609:
erts: Fix memory leak when sending to terminating port
|
|
Cherry-picked from 7c5fcd3f2701cbb614930682ac52ff75b9c26e6c.
Error: Leak_DefinitelyLost
erts_alloc:230 (-> 0x52E54D) [erl_alloc.h]
port_task_alloc:154 (-> 0x52F3CA) [erl_port_task.c]
erts_port_task_alloc_p2p_sig_data:212 (-> 0x52F5D3) [erl_port_task.c]
erts_port_output:2147 (-> 0x4F6057) [io.c]
erts_port_command:4126 (-> 0x4FA10E) [io.c]
do_send:2200 (-> 0x4E4C64) [bif.c]
erl_send:2494 (-> 0x4E5E09) [bif.c]
process_main:1730 (-> 0x43ADA5) [beam_emu.c]
|
|
|
|
|
|
|
|
maint-19
* hasse/syntax_tools/fix_map_type/OTP-15098/ERIERL-177:
syntax_tools: Fix a bug regarding reverting map types.
|
|
* john/erts/inet-drv-race/OTP-15158/ERL-654:
Fix a race condition when generating async operation ids
|
|
* dotsimon/ref_ordering_bug/OTP-15225:
Fixed #Ref ordering bug
Test #Ref ordering in lists and ets
|
|
|
|
|
|
|
|
The counter used for generating async operation ids was a plain int
shared between all ports, which was incorrect but mostly worked
fine since the ids only had to be unique on a per-port basis.
However, some compilers (notably GCC 8.1.1) generated code that
assumed that this value didn't change between reads. Using a
shortened version of enq_async_w_tmo as an example:
int id = async_ref++;
op->id = id; //A
return id; //B
In GCC 7 and earlier, `async_ref` would be read once and assigned
to `id` before being incremented, which kept the values at A and B
consistent. In GCC 8, `async_ref` was read when assigned at A and
read again at B, and then incremented, which made them inconsistent
if we raced with another port.
This commit fixes the issue by removing `async_ref` altogether and
replacing it with a per-port counter which makes it impossible to
race with someone else.
|
|
|
|
|
|
* hans/ssh/reneg_bug_19/OTP-15066:
ssh: Renegotiation -> renegotiate
|
|
* hans/ssh/dh_gex_putty_19/OTP-15064:
ssh: Fix DH group exchange server bug for PuTTY and others following draft-draft-00 from 2001 and not the rfc4419
|
|
* hans/ssh/server_exit_normal_exit_19/OTP-15018:
ssh: Fix server crashes for exit-normal signals
|
|
|
|
and others following draft-draft-00 from 2001 and not the rfc4419
|
|
|
|
|
|
|
|
* hans/ssh/sftpd_rm_dir_err_19/OTP-15004:
ssh: Fix ssh_sftpd:handle_op not returning State
|
|
|
|
|
|
|
|
* sverker/maint-19/os-cmd-2/OTP-14823:
kernel: Fix os_SUITE:max_size_command for OTP-19
kernel: Fix handling of os:cmd option max_size in win
kernel: Add os:cmd/2 with max_size option
|
|
where string:trim does not exist.
|
|
git cherry-pick 75b0f73f72e1783d4ace976cdd2b5f23bdc3ebae
|
|
git cherry-pick 55e929c4ed5cd854038c18697123ea94948ebf35
|
|
|
|
|
|
* ingela/ssl/PR-1709/OTP-14929:
ssl: Prepare for release
ssl: Backport PR-1709
|
|
* hans/ssh/execfix19/OTP-14881:
ssh: Fix cli
ssh: Test for disabled shell
|
|
|
|
|
|
Conflicts:
lib/ssh/src/ssh.hrl
lib/ssh/src/ssh_cli.erl
|
|
|
|
|
|
|
|
* rickard/node-mon-proc-exit-race/OTP-14781:
Fix triggering of node monitors
|
|
* dgud/mnesia/slow-startup/OTP-14829:
mnesia: Read schema user properties directly
|
|
* dgud/mnesia/backup-error-handling/OTP-14776:
mnesia: Fix error handling in abort write
|
|
* john/erts/fix-close-eintr/OTP-14775:
Remove invalid EINTR loop around close(2)
|
|
* hans/ssh/dont_remove_trailing_ws_19/OTP-14763:
ssh: testcases for space trailing Hello msg
ssh: Don't remove trailing WS in Hello msg
|
|
Doing a proper transaction handling of user properties (in current
implmenentation) caused schema_transactions to be quadratic which
caused huge startup times for nodes with many tables since the merge schema
is a schema_transaction.
Do a direct read instead, cheap but implies that the plugin changes
will not be visible until the changes are commited and cannot be used
later in same transaction, which was possible before if undocumented
functions where used.
|
|
|