Age | Commit message (Collapse) | Author |
|
* lukas/erts/tracing/fix_sparc_align_issue/OTP-13803:
erts: Align ErtsThrPrgrLaterOp when free'ing tracer
|
|
On Sparc all structs with a double word element in are assumed
to be allocated on a two word boundary. So we have to make sure
that the ErtsThrPrgrLaterOp * points to 8 / 16 byte aligned memory.
As it only costs one word I've done it on all architectures in case
some unknown other arch also needs this.
|
|
* lukas/erts/fix_init_stop_code_load_race/OTP-13802:
erts/kernel: Fix code loading deadlock during init:stop
|
|
When init:stop is called it walks the application hierarchy
and terminates each process. Some of these processes may do
something while terminating and sometimes that something
needs to load some new code in order to work. When this happens
the code_server could just be in the process of terminating
or the erl_prim_loader could be active. In both these cases
the request to load the new code would cause a deadlock in the
termination of the system.
This commit fixes this by init rejecting attempts to load new code
when init:stop has been called and fixing a termination race in
the code_server.
This however means that the process that tried to do something
when told to terminate (for instance logging that it is terminating)
will crash instead of loading the code.
|
|
* binarin/even-more-absolute-paths/PR-1103/OTP-13800:
Use perl discovered by configure
Don't make assumptions about build tools paths
|
|
* avellable/erts/correct_atomicity_typo:
Correct spelling of atomicity
|
|
|
|
with run_erl option -sleepy-child
to provoke race when slave pty is late
|
|
|
|
maint
* raimo/erts/prim_inet-unknown-address-families/OTP-13775:
Handle AF_UNSPEC and AF_UNDEFINED correctly
|
|
* raimo/SCTP-socket-stats/ERL-102/OTP-13773:
Fix SCTP send stats in inet_drv
Test inet:getstat/1 dead for SCTP send
Fix test suite compilation warnings
|
|
* margnus1/erts/fix-hipe-literal-gc/PR-1122/OTP-13777:
check_process_code: Sweep HiPE stack for literals
|
|
|
|
|
|
Regression from OTP-13770 (84549af1c996657aedee1263afec28b21bfa42a4)
|
|
|
|
|
|
We need to use an initial hash seed for each map pair, i.e. the
hash value. The hash value is reset to the seed for each pair instead
of setting the seed to zero.
If we don't, no additional entropy is given to the system and the
hash collision resolution in maps:from_list/1 would fail.
|
|
|
|
|
|
into maint
* falkevik/erts/configure_to_check_in_libsctp_for_sctp_funcs:
Check libsctp for sctp funcs in configure.in
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This type of statistics is now available through the microstate
accounting API.
|
|
* lukas/erts/tracing/get_seq_tracer_mem_leak/OTP-13742:
erts: Make sure to de-allocate the old seq tracer
|
|
* pw/erts/documentation-editorial-changes/OTP-13740:
erts: Review of documentation changes
erts: Editorial changes
erts: Move all functions in docs to be in alphabetical order
|
|
|
|
* sverker/update_counter-deadlock/ERL-188/OTP-13731:
erts: Add test ets_SUITE:update_counter_table_growth
erts: Fix deadlock in ets:update_counter/4
erts: Optimize db_finalize_dbterm_hash
|
|
|
|
|
|
|
|
This commit only changes the order of functions and does some
other rearrangements to that the diff with the next commit will
be easier to follow. No content or XML tags are changed.
|
|
* lukas/erts/tracing/bif_return_to_trace_fix/OTP-13734:
erts: After a call to a tracer nif, reset htop
erts: Check if return_to trace is enabled for bif
|
|
This is needed in order for the heap to never contain
any pointers to invalid memory. This is good for performance
and debugging reasons.
|
|
* lukas/erts/spawn_driver_relative_cd/ERL-175/OTP-13733:
erts: Add port_SUITE:cd invalid dir testcase
erts: Fix spawn driver with relative cd option
erts: Fix HARD_DEBUG printouts in erl_child_setup
erts: Improve error printouts in erl_child_setup
Conflicts:
erts/emulator/test/port_SUITE.erl
|
|
in 'set' with 'write_concurrency'
when inserting default object causes table to grow
and the bucket to split is protected by same lock as the key.
|
|
Always free term after WUNLOCK_HASH
|
|
Symptom: VM abort "Overrun stack and heap"
Problem: The temporary bignum created in buffer tmp_big[] will be
part of the GC initiated by TestHeapPreserve, but its size is not
included which can cause the GC to overflow if very unlucky.
Solution: Do not include tmp_big in the GC.
|
|
We have to do an extra check if the return_to trace is enabled here
as it may have been cleared by the bif after the flags where
created by the call_trace.
|
|
|
|
|
|
Because check_process_code neglected checking the HiPE stack for
references to the literal area, such references would survive the purge
and subsequent deletion of a module and its literal area. These dangling
references would then cause incorrect behaviour or even hard crashes of
the VM.
By simply adding a scan of the HiPE stack to check_process_code and
erts_garbage_collect_literals, this problem is fixed.
In order to support full stack walks without deleting the graylimit
trap, a new stack walking interface function,
nstack_walk_init_sdesc_ignore_trap() was introduced.
|
|
* hipe-trap-gc/PR-1116:
hipe: Fix bug in trap frame allocation wrappers
hipe: Add assertion for gc in bif without wrapper
|
|
Symptom: run_erl does exit(0) and child program (erl) does
not seem to start. Running run_erl again however brings the previous
child program to life.
Problem: A race causing run_erl to read 0 from master pty and exit
because the child has not yet opened its corresponding slave pty.
Solution: Use the non standard openpty() function instead that does
not expose this race as the slave fd is opened in the parent.
Question:
Is there a race free way to do this with posix_openpt on OpenBSD?
|
|
|
|
|