Age | Commit message (Collapse) | Author |
|
* sverk/setnode-rename-bug/OTP-13076:
erts: Fix bug in setnode/2
erts: Remove ERTS_PSD_DIST_ENTRY
erts: Remove faulty ASSERT in erts_proc_*_refc
|
|
* egil/18/fix-maps-binary_to_term/OTP-13125:
erts: More testcases for map binary_to_term/1
erts: Fix maps decode in erlang:binary_to_term/1
|
|
|
|
Decoding a term with a large (HAMT) map in an small (FLAT) map could cause
a critical error if the external format was not produced by beam.
|
|
* sverk/nif_SUITE-win64-long-bug:
erts: Fix nif_SUITE for win64
|
|
* zenhack/fix-erroneous-__uint32_t:
Fix erroneous use of __uint32_t
OTP-13105
|
|
where type long is only 32-bit and can not hold a pointer
unless your lucky.
|
|
that could lead strange things to happen when renaming a node with
a name that already exist in node and dist tables.
Problem:
erts_set_this_node() is a bit brutal and does not handle the case
when an old remote node name is reused as the new local node name.
Solution:
Treat erts_this_node and erts_this_dist_entry as all the others
with correct reference counting.
|
|
* lukas/erts/win32_bool_fix/OTP-13079:
erts: bool is a reserved word, use boolean instead
|
|
Not needed as it is always set to erts_this_dist_entry (on net_kernel).
|
|
There is no guarantee that the ptab-slot in not reused
when we finally deallocates the process struct.
|
|
* lukas/erts/process_mem_test_fix/OTP-13077:
erts: Don't run processes tests on lcnt with little memory
|
|
* lrascao/fix/build_fail_on_enabled_dist_debug:
Fix build fail when enabling distribution debug messages
|
|
A new {line_delimiter, byte()} option allows line-oriented TCP-based
protocols to use a custom line delimiting character. It is to be
used in conjunction with {packet, line}.
This option also works with erlang:decode_packet/3 when its first argument
is 'line'.
|
|
The presence of this symbol is libc-specific. In particular, it is
absent from musl. The correct solution is to use uint32_t.
|
|
* kostis/hipe-native-bif-warning:
Take out unused code that results in a gcc warning
OTP-13041
|
|
|
|
|
|
Another process may already have been placed in this slot
since the free och the process struct can be scheduled for
later.
|
|
* lukas/erts/ttsl_eintr/OTP-12987:
erts: Make sure to deal with EINTR write failures
|
|
* goertzenator/enif_make_pid-unused_param:
fix unused parameter warning in enif_make_pid
OTP-12989
|
|
* mikpe/erts-binary_to_integer-fix:
erts: fix binary_to_integer boundary case
OTP-12988
|
|
|
|
* sverk/inet-packet-ssl_tls-passive:
erts: Fix inet packet mode ssl_tls for passive mode
|
|
* rickard/disable-saved-compile-time/OTP-12971:
Add configure switch --disable-saved-compile-time
Conflicts:
HOWTO/INSTALL.md
|
|
* rickard/event-tmo/OTP-12954:
Fix ethread events with timeout
|
|
|
|
Caused stack corruption leading to VM crash on windows.
{packet,ssl_tls} is undocumented by the way.
|
|
Conflicts:
erts/emulator/beam/erl_printf_term.c
erts/emulator/beam/erl_term.c
erts/emulator/beam/utils.c
|
|
of a process with a matchstate on the stack.
|
|
If the process stack contained a match state
the print function would crash the vm as it was not
recognized by tag_val_def().
Add new MATCHSTATE_DEF returned by tag_val_def().
All other callers either ignore it or has a default
clause to handle invalid terms.
|
|
* sverk/hipe-fix-literal-crc:
erts,hipe,dialyzer: Fix hipe checkum of target runtime system
erts: Change THE_NON_VALUE to not be hard coded in hipe compiler
OTP-12962
OTP-12963
OTP-12964
|
|
Main problem:
A faulty HIPE_LITERAL_CRC was not detected by the loader.
Strangeness #1:
Dialyzer should ask the hipe compiler about the target checksum,
not an internal bif.
Strangeness #2:
The HIPE_SYSTEM_CRC checksum was based on the HIPE_LITERALS_CRC
checksum.
Solution:
New HIPE_ERTS_CHECKSUM which is an bxor of the two (now independent)
HIPE_LITERALS_CRC and HIPE_SYSTEM_CRC.
HIPE_LITERALS_CRC represents values that are assumed to stay constant
for different VM configurations of the same arch, and are therefor
hard coded into the hipe compiler.
HIPE_SYSTEM_CRC represents values that may differ between VM variants.
By default the hipe compiler asks the running VM for this checksum,
in order to create beam files for the same running VM.
The hipe compiler can be configured (with "make XCOMP=yes ...") to
create beam files for another VM variant, in which case HIPE_SYSTEM_CRC
is also hard coded.
ToDo:
Treat all erts properties the same. Either ask the running VM or hard
coded into hipe (if XCOMP=yes). This will simplify and reduce the risk
of dangerous mismatches. One concern might be the added overhead
from more frequent calls to hipe_bifs:get_rts_param.
|
|
* sverk/hipe-maps-merge-wrapper:
erts: Fix hipe bug for maps:merge/2
erts: Beautify hipe wrapper macro
OTP-12965
|
|
Add forgotten HIPE_WRAPPER_BIF_DISABLE_GC which
could lead to stack-heap overrun if unlucky with the
yielding during maps:merge when called by native hipe code.
|
|
|
|
Lots of pthread platforms unnecessarily falled back on the pipe/select
solution. This since we tried to use the same monotonic clock source
for pthread_cond_timedwait() as used by OS monotonic time. This has
been fixed on most platforms by using another clock source.
Darwin can however not use pthread_cond_timedwait() with monotonic
clock source and has to use the pipe/select solution. On darwin we
now use select with _DARWIN_UNLIMITED_SELECT in order to be able to
handle a large amount of file descriptors.
|
|
|
|
Instead ask running VM for the value of THE_NON_VALUE,
which is different between opt and debug VM.
Same hipe compiler can now compile for both opt and debug VM.
|
|
These ifdef-ed lines were once upon a time needed, but the recent
changes in the time mechanism of OTP render them unused and result
in a warning on architectures which are not 64-bit.
|
|
|
|
* lukas/erts/process_priority_unlock/OTP-12943:
erts: Make sure to unlock status lock when setting process prio
|
|
* vinoski/stderr-eagain/OTP-12942:
Handle ERRNO_BLOCK in fd_driver async functions
|
|
Several users on erlang-questions have reported problems with recent
releases where output to standard_error causes standard_error_sup to
die from receiving an unexpected eagain error. In the fd_driver,
change the fd_async() function to handle EINTR, and change
fd_ready_async() to handle ERRNO_BLOCK. Add a new test to
standard_error_SUITE to generate output to standard_error and ensure
that standard_error_sup does not die. Thanks to Kota Uenishi for
contributing the test case.
|
|
|
|
|
|
|
|
* lukas/erts/system_process_core/OTP-12934:
erts: Don't abort when a system process is terminated
|
|
* sverk/smp-trace-port-exit-bug/OTP-12901:
Teach smp VM how to deal with crash of a linked trace port
|
|
Problem: The sys-msg-dispather crashes the VM when trying to send
exit signals from the links of the terminating trace port.
If try-lock of the linked process fails, a pending exit is
scheduled and erts_scheduler_data() is then called to find
"my" run queue. But sys-msg-dispatcher is not a scheduler
and has no scheduler data, hence SEGV.
Fix: If not a scheduler and we cannot get process locks,
schedule process in its previous run-queue.
|