Age | Commit message (Collapse) | Author |
|
* sverk/port_get_data-race-r16b03/OTP-12208:
erts: Fix port data memory allocation bug
erts: Mend port_set_data with non-immed data for halfword VM
erts: Add test case for port_set_data and port_get_data
erts: Fix race between port_set_data, port_get_data and port termination
erts: Fix erlang:port_set_data/2 for non immediate data
|
|
for non-immediate port data >= sizeof(Eterm)*2 words.
|
|
|
|
|
|
Always update prt->data with atomic xchg-op.
Check for NULL data to detect racing port terminator.
Use NULL, as THE_NON_VALUE can be a valid pointer on debug VM.
|
|
hsize field was not set leading to VM crash
|
|
This has to be done in order to consistently generate the same
file so that we do not get rebuilds all the time.
|
|
|
|
Inet close must remove fd from select/poll without closing the fd.
|
|
|
|
* sverk/test-cuddle:
erts: Reduce wasted execution time for match_spec_SUITE:otp_9422
|
|
|
|
|
|
|
|
The warning is:
sys/common/erl_poll.c:2513:72: warning: for loop has empty body [-Wempty-body]
for (prev_ps = pollsets; ps != prev_ps->next; prev_ps = prev_ps->next);
|
|
The test needs to be false to fail, not true. This was noticed with the
following warning, where marking erl_assert_error as non-returning didn't
help:
beam/erl_gc.c:2772:2: warning: variable 'refc' is used uninitialized whenever switch default is taken [-Wsometimes-uninitialized]
default:
^~~~~~~
beam/erl_gc.c:2775:26: note: uninitialized use occurs here
ERTS_CHK_OFFHEAP_ASSERT(refc >= 1);
^~~~
beam/erl_gc.c:2738:11: note: expanded from macro 'ERTS_CHK_OFFHEAP_ASSERT'
if (!(EXP)) \
^
beam/erl_gc.c:2759:18: note: initialize the variable 'refc' to silence this warning
erts_aint_t refc;
^
= 0
|
|
|
|
When the offending code is reached, new_crr is either uninitalized or
have been set to NULL. This patch removes the following warning:
beam/erl_alloc_util.c:3510:6: warning: variable 'new_crr' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
if (!(flags & CFLG_FORCE_MSEG)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~
beam/erl_alloc_util.c:3567:23: note: uninitialized use occurs here
DEBUG_SAVE_ALIGNMENT(new_crr);
^~~~~~~
beam/erl_alloc_util.c:674:51: note: expanded from macro 'DEBUG_SAVE_ALIGNMENT'
UWord algnmnt__ = sizeof(Unit_t) - (((UWord) (C)) % sizeof(Unit_t));\
^
beam/erl_alloc_util.c:3510:2: note: remove the 'if' if its condition is always true
if (!(flags & CFLG_FORCE_MSEG)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
beam/erl_alloc_util.c:3438:23: note: initialize the variable 'new_crr' to silence this warning
Carrier_t *new_crr, *old_crr;
^
= NULL
|
|
* sverk/bit-cmp-bug/OTP-11501:
erts: Fix invalid read when appending binaries during call trace
erts: Optimize comparison for bitstrings with byte aligned start
erts: Fix invalid read in bitstring comparison
|
|
* rickard/port_bifs_fix/OTP-11489:
Ensure exit signal due to link precede port BIF return
|
|
* lukas/erts/supercarrier_fix/OTP-11149:
Improve error info when main carrier creation fails
Conflicts:
erts/emulator/test/alloc_SUITE.erl
|
|
* sverk/bin2term-bitstr-bugs/OTP-11479:
erts: Fix bug in binary_to_term for binaries larger than 2^31
erts: Fix bugs in binary_to_term for invalid bitstrings
|
|
* sverk/allctr-4byte-align-bug:
erts: Fix alignment bug in allocator start code
OTP-11496
|
|
Found by valgrind. Probably safe on opt-VM due to CHICKEN_PAD.
|
|
|
|
Valgrind complained that erts_cmp_bits sometimes read one byte too much
from bitstrings. The byte was never used and the invalid read is safe
in opt-VM due to padding in binary allocation (CHICKED_PAD).
|
|
|
|
|
|
Also fix testcase that failed due to main carrier creation failure.
|
|
* rickard/acul-bug/OTP-11456:
Ensure carrier pool only accessed by schedulers
|
|
* rickard/supercarrier-fix/OTP-11149:
Fix observer retrieval of alloc info
Fix documentation of the +MMsco switch
Replace the +MMscmgc switch with +MMscrfsd
Add switch for disabling sys_alloc carriers
Add support for locking mappings to physical memory
|
|
Bug never released.
|
|
* sverk/hash_SUITE-bit_level_binaries:
erts: Fix test case hash_SUITE:bit_level_binaries
|
|
* bjorn/erts/fix-erl_crash_dump/OTP-11450:
Fix truncated pointers in erl_crash.dump
|
|
|
|
Commontest doesn't like exported functions with same name as test case.
|
|
|
|
<<131, 77, Len:32, Bits:8, Data/binary>>
badarg if Bits > 8
Used to return internally inconsistent bitstring
badarg if Len==0 and Bits > 0
Used to return invalid *huge* binary (size = (Uint)-1)
badarg if Bits==0 and Len > 0
Used to return valid binary as if Bits was 8
|
|
* mhssler/add-os-unsetenv/OTP-11446:
erts: remove ?line macro in testcases
Update primary bootstrap
Add os:unsetenv/1
|
|
* sverk/valgrind-added-leak-check:
erts: Prevent valgrind from repeating same memory leaks reports
|
|
|
|
|
|
New BIF os:unsetenv/1 which deletes an environment variable and
returns 'true'.
Does not change any old functionality.
Calls the libc function unsetenv(3) on UNIX and
SetEnvironmentVariableW(key, NULL) on Windows. The unicode support
is the same as for os:getenv and os:putenv.
|
|
|
|
Replaced the +MMscmgc switch with the +MMscrfsd switch. The old switch
didn't reflect what it controlled.
|
|
The switch "+Musac <boolean>" controls if sys_alloc carriers
are allowed.
|
|
Using "+Mlpm all" switch all mappings made by the emulator will
be locked into physical memory.
|
|
* sverk/monitor-memory-leak/OTP-11410:
erts: Fix memory leak for distributed monitors
|
|
by using the macro VALGRIND_DO_ADDED_LEAK_CHECK if it exists
for system_info({error_checker,memory})
|
|
Disable carrier pool for the thread safe allocator instance 0.
This since non-managed threads allocates and deallocates memory
in this instance, and only managed threads are allowed to
access the carrier pool.
|