Age | Commit message (Collapse) | Author |
|
|
|
|
|
Make use of the new select functions; enif_select_[read|write],
for read and write select. These functions allows us to construct
the select message ourseves:
{'$socket', Socket, select, Ref}
This is in preparations for when we introduce the 'nowait'
(or something similar) value for the timeout argument (in accept,
read and write funcions).
It also solves (we hope) the term leakage problems (it was difficult
to free the environment when there was only one/socket).
OTP-15496
|
|
* bjorn/cuddle-with-tests:
crash dump: Fix printing of "OldBinVHeap unused"
crash dump: Include correct IP for a garbing process
fun_SUITE: Make refc/1 test more reliable
Remove redundant rule from Emakefile
Turn off more optimizations for no_opt modules
test_server_node: Bump compiler compatibility version to OTP 20
erts_test_utils: Bump compiler compatibility version to OTP 20
distribution_SUITE: Remove irrelevant test atom_roundtrip_r16b
bs_construct_SUITE: Rename bs_add_overflow/1 to bs_append_overflow/1
bs_construct_SUITE: Remove troublesome test huge_binary/1
bs_construct_SUITE: Remove incorrect purpose line
|
|
Wait a little after to make sure that fun holding process to
complete its termination.
|
|
According to the comment, this rule was only needed when communication
with R7B nodes was supported.
|
|
With the new compiler in OTP 22, we have to use more options to
turn off optimizations.
This commit also skips the match_huge_int/1 test case in the
unoptimized clone of the bs_match_int module because it could
crash on memory-constrained computers.
|
|
* bjorn/erts/measure-process_main/OTP-15620:
Add benchmark
Add erts_debug:interpreter_size/0
|
|
|
|
Communication with OTP R16b has not been supported for a while.
|
|
The test case tests that the bs_append instruction tests for overflow.
Make that clear by renaming the test case.
While at it, also add a few explicit garbage_collection/0 calls to
make it more likeley to run successfully in tight memory situations.
|
|
This test case can fail for the wrong reason (swapping
followed by a timetrap timeout). It is unlikely to fail because
of a real bug.
|
|
|
|
|
|
erts: Optimize arithmetic ops using overflow intrinsics
|
|
We don't check for io errors as the pollset will be unstable.
|
|
|
|
* bjorn/erts/cuddle-with-tests:
statistics_SUITE: Make wall_clock_update/1 more tolerant
|
|
|
|
|
|
This test would fail on some versions of FreeBSD because /proc was
present but empty.
This commit makes the test fail if and only if a known zero-sized
file is found and turns out to be empty empty.
|
|
|
|
* sverker/process_info-reductions-fix/OTP-15709:
erts: Fix bug in process_info(reductions)
erts: Use ptr_val for pointer in gc msg copy
|
|
This commit fixes a bug that could cause a crash or memory usage to
grow until the machine ran out of memory when adding a key-value pair
to a map. This could happen when inserting a new key-value pair with a
key K1 containing a binary B1 into a map M having a key K2 with a
binary B2 if the following conditions were met:
* size(B1) >= 4294967296
* size(B2) >= 4294967296
* size(M) >= 32
* (size(B1) rem 4294967296) == (size(B2) rem 4294967296)
* the first (size(B1) rem 4294967296) bytes are the same both in B1
and B2
* substituting B1 in K1 with B2 would result in a term with the same
value as K2
The root cause of the bug is that the map implementation only hashed
the first (X modulo 4294967296) bytes of binaries so that different
binaries could get hashed to the same hash value independently of the
hash seed.
|
|
returning incorrect result as
* current process might not be RUNNING in which case REDS_IN
is actually used as def_arg_reg[5]
* FCALLS might not have been swapped out
* the SAVED_CALLS case was wrong and returned number of reds left
|
|
* john/erts/remove-destructive-bs_get_binary2/ERL-901:
erts: Remove unsafe bs_get_binary2 optimization from loader
|
|
A load-time optimization assumed that match contexts had no further
uses when a bs_get_binary2 overwrote the match context's register,
and figured it would be safe to reuse the match context's memory
for the resulting binary.
This is no longer safe as of OTP 22, as a match context may be
reused after being passed to another function.
|
|
* sverker/bug-fixing:
erts: Fix erts_debug:set_internal_state(reds_left)
erts: Fix binary_SUITE:cmp_old_impl
|
|
since DFLAG_BIG_CREATION became mandatory in
321dc6ee0241f802c940def174c0a77262e11f21.
|
|
|
|
|
|
|
|
This reverts commit 1eb0a2c47edd036731ee1e4e4f7b5bdfc7d576fa.
|
|
|
|
This needs to be done in order for automatic fd leak checking
to work properly.
|
|
|
|
When the calling process is trapping exits a stray message
will end up in the mailbox which is problematic. This change
uses a monitor instead.
|
|
|
|
Be more tolerant of time deviations, to avoid that this
test case fails on slow computers.
|
|
* john/erts/fix-badarg-fixed_apply:
erts: Include argument list on badarg in fixed_apply
|
|
* sverker/master/enif_whereis_pid-dirty-dtor:
erts: Add test of enif_whereis* from resource destructor
erts: Simplify nif_SUITE:nif_whereis* tests
erts: Schedule resource destructors always
|
|
* maint:
Fix reception of resume signal on process executing dirty
|
|
|
|
|
|
If a suspend/resume signal pair was sent to a process while it
was executing dirty the resume counter on the process got into
an inconsistent state. This in turn could cause the process
to enter a suspended state indefinitely.
|
|
Added a fun for precondition check run before each test case
is actually run. The primary reason for this is the api_to_connect
test case, which does not work for a number of platforms.
Also, moved the IPv6 check into this fun (instead of an explicit
skip in the test case fun) for the IPv6 test cases.
|
|
|
|
into sverker/master/enif_whereis_pid-dirty-dtor
|
|
|
|
and change some argc checks from badarg to assert.
|