Age | Commit message (Collapse) | Author |
|
* rickard/erts-print/OTP-13150:
Remove ERTS_PRINT_INVALID from erts_print()
|
|
ERTS_PRINT_INVALID prevented file descriptor 0 to be used which
could cause an empty crash dump.
|
|
OTP-13147
* sverk/cpool_fetch-dc_list-fix:
erts: Reduce alloc_SUITE:rbtree runtime for valgrind
erts: Remove double free in efile_drv
erts: Improve alloc_SUITE:migration test
erts: Pass free mem and build type to alloc_SUITE tests
erts: Fix snprintf in alloc_SUITE for windows
erts: Workaround for strange crash on win64 in alloc_SUITE test code
erts: Refactor alloc_SUITE to use NIFs instead of drivers
erts: Add enif_getenv
erts: Make key argument constant for erl_drv_{get|put}env
erts: Add alloc_SUITE:migration
erts: Add TEST allocator
erts: Fix confusion of callbacks destroying_mbc() vs remove_mbc()
erts: Fix resurrection of carriers from dc_list
|
|
* 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
|
|
|
|
That double free is probably very seldom invoked as the port is already
gone leading to free_data being called instead of file_async_ready.
|
|
In the quest to improve code coverage in cpool_fetch
|
|
|
|
|
|
For some reason setjmp() crash when having jmp_buf heap allocated
but works when stack allocated.
|
|
|
|
to read OS environment variables in a safe and portable way.
|
|
* 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.
|
|
This should be a harmless and compatible API change.
|
|
|
|
|
|
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
|
|
|
|
|
|
Problem #1 Goodfit was crippled by the fact that destroying_mbc()
was called _before_ the carriers was unlinked from mbc_list.
Problem #2 destroying_mbc() was called for carriers that later could be
resurrected from dc_list without a matching call to creating_mbc().
This was mostly a practical problem for the new test case
alloc_SUITE:migration that use the callbacks to create/destroy a mutex.
Solution:
destroying_mbc() is now only called just before a carrier is
destroyed (deallocated or put in mseg cache).
remove_mbc() is called both (like before) when inserted into cpool
but now also when last block is freed and mbc is scheduled for
destruction but may later be resurrected from dc_list.
|
|
Problem #1: Seems the dc_list check did end up as dead code by mistake.
Solution: goto check_dc_list
Problem #2: crr->cpool.max_size was set to zero for all carriers in
dc_list, which meant no carriers were ever resurrected by cpool_fetch.
Solution: Do not use callback 'largest_fblk_in_mbc' to set max_size
as it will always return 0 (due to problem #3).
Problem #3: Resurrected carriers were broken as their one free block
was not linked.
Solution: Link free block when fetching carrier from dc_list.
|
|
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
|