Age | Commit message (Collapse) | Author |
|
|
|
* rickard/ds-trace/OTP-13822:
Fix tracing of processes executing dirty
|
|
* rickard/ds-purge-module/OTP-13808:
Perform check_process_code while process is executing dirty
Conflicts:
erts/doc/src/erl_nif.xml
|
|
'rickard/new-purge-strategy/OTP-13833' into maint
* rickard/fun-purge-bug/OTP-13809:
Fix purge of code
Reclaim literal area after purge has completed
Separate literal area from code
Conflicts:
erts/doc/src/erlang.xml
erts/emulator/beam/beam_bif_load.c
erts/emulator/beam/erl_init.c
erts/preloaded/ebin/init.beam
|
|
|
|
|
|
Ensure that we cannot get any dangling pointers into code that
has been purged. This is done by a two phase purge. At first
phase all fun entries pointing into the code to purge are marked
for purge. All processes trying to call these funs will be suspended
and by this we avoid getting new direct references into the code.
When all processes has been checked, these processes are resumed.
The new purge strategy now also completely ignore the existence of
indirect references to the code (funs). If such exist, they will
cause bad fun exceptions to the caller, but will not prevent a
soft purge or cause a kill of a process having such live references
during a hard purge. This since it is impossible to give any
guarantees that no processes in the system have such indirect
references. Even when the system is completely clean from such
references, new ones can appear via distribution and/or disk.
|
|
|
|
* margnus1/erts/fix-hipe-literal-gc/PR-1122/OTP-13777:
check_process_code: Sweep HiPE stack for literals
|
|
Regression from OTP-13770 (84549af1c996657aedee1263afec28b21bfa42a4)
|
|
|
|
|
|
* 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
|
|
* 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
|
|
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.
|
|
|
|
|
|
for 9f779819f6bda734c595.
|
|
* lukas/erts/nif_allow_port_command_in_non_sched_thread/OTP-13442:
erts: Allow enif_port_command in non-sched thread
|
|
* lukas/erts/testfixes-19:
erts: Increase bif and nif call_time trace test
erts: Fix distribution_SUITE:bulk_send_bigbig on windows
erts: Ensure bs_add_overflow test has enough memory
kernel: Better explain controlling_process' tcp behaviour
kernel: Fix t_recv_delim on bsd
os_mon: Make sure to start/stop os_mon in tests correctly
ssl: Fix use_interface dist_SSL test
erl_interface: Fix signed int overflow tc bug
erts: fix atom_roundtrip_r15b tc
erts: Require more memory for debug tests
|
|
This makes the time that the tests execute longer, which means
that on systems with low resolution on timers (e.g. windows)
the test is less likely to fail.
|
|
The granualarity of the windows time sometimes makes timer:tc
return 0 as the time taken for the test. Change this to use
the most common time instead.
|
|
|
|
if node fails to start, just skip testcase
|
|
It has to be possible to send trace messages to a port
from non-schedulers threads (specifically from the
sys_msg_dispatcher).
|
|
* kvakvs/erts/monitor_port/OTP-11384:
erts: Add port monitors
|
|
* erlang:monitor/2 with port argument is added, erlang:demonitor, using port task API and avoiding locking;
* port_info and process_info support for monitored ports (with named port monitors support);
* Exit signals contain type 'process' or 'port';
* Propagation of port exit signals;
* Self-cleaning when origin process dies with monitor on;
* 8 test cases + testcase for port driver crashing;
* Documentation for all of the above (monitor, demonitor, port_info and process_info) updated
|
|
* egil/lttng-change-domain:
runtime_tools: Change LTTng dyntrace domain
erts: Change LTTng otp domain
|
|
* rickard/misc-ds:
Replace enif_is_on_dirty_scheduler() with enif_thread_type()
No GC on dirty IO schedulers
|
|
|
|
From 'com_ericsson_otp' to 'org_erlang_otp'.
This domain name is more suitable.
|
|
* zandra/test_server/unmatched_returns/OTP-13345:
vts - Fix unmatched_return warnings
test_server_sup - Fix unmatched_return warnings
test_server_node - Fix unmatched_return warnings
test_server_io - Fix unmtached_return warnings
test_server_gl - Fix unmatched_return warnings
test_server_ctrl - Fix unmatched_return warnings
test_server - fix unmatched_return warnings
remove unused purify functions
|
|
|
|
* egil/lttng-cuddle-tests:
erts: Cuddle with lttng_SUITE
runtime_tools: Cuddle with t_receive tests
|
|
* rickard/dirty_nif_SUITE-win-fix:
Fix windows
|
|
* vinoski/dirty_process_main/OTP-13123:
Add dirty_process_main function
|
|
Dirty schedulers only execute NIFs, so having them execute the full
process_main function isn't necessary. Add dirty_process_main for
dirty schedulers to execute instead.
Add erts_pre_dirty_nif(), called when preparing to execute a dirty
nif.
Add more dirty NIF tests to verify that activities requiring the
process main lock can succeed when the process is executing a dirty
NIF.
|
|
|
|
|
|
* egil/erts/cuddle-tests:
stdlib: Fix small inconsistencies in ets_SUITE
stdlib: Strengthen or relax test cases
kernel: Don't test negative time values in file info
erts: Fix free_mem calculation in bs_construct tests
|
|
Removed in f9cb80861f169743 when changed impl from C to Erlang.
But seems they are needed to keep dialyzer tests happy.
Also improved bif_SUITE:shadow_comments to include all exported
in module erlang, not just the "snifs".
...which detected that apply/2 was missing Shadowed comment as well.
|
|
|
|
|
|
* rickard/rm-mqd-mixed/OTP-13366:
Remove the 'message_queue_data' option 'mixed'
|
|
* lukas/erts/tracing/tracer-move-extra-to-map/OTP-10267:
runtime_tools: Fix erl_tracer testcases
runtime_tools: Fix documentation for dbg:p
erts: Move tracer SecondTraceTerm to Opts map
|
|
For -start_epmd, check that the node starts properly and that we can
ping it.
For -epmd_module, start two nodes that can communicate only because we
supply the correct port number through a command line argument.
|
|
|
|
if too long.
|
|
* egil/erts/fix-purge_code-literals:
erts: Refactor ERTS_MSG_COMBINED_HFRAG to heap fragment
erts: Copy literals in messages on module purge
erts: Add testcase for purge of literals
|