Age | Commit message (Collapse) | Author |
|
* hipe-trap-gc/PR-1116:
hipe: Fix bug in trap frame allocation wrappers
hipe: Add assertion for gc in bif without wrapper
|
|
The trap frame allocation wrappers occasionally call the garbage
collector, even though built-in functions are not supposed to.
On non-{x86,amd64} platforms, HiPE was optimising the BIF wrapper
interface on the basis that BIFs do not GC. So, when
hipe_reserve_beam_trap_frame called the garbage collector, the state in
the PCB was stale and corruption happened.
Now, these particular BIFs are reclassified as GC BIFs.
Unfortunately, in order to do that we needed to introduce a
gc_bif_interface_3 macro in every hipe_$ARCH_bifs.m4 file.
|
|
An easy source of tricky bugs is to start calling the garbage collector
from a built-in function without adding that bif to hipe_bif_list.m4.
With this change we, in the debug build, keep track of whether the
canonical stack and heap pointers are stored in the PCB or in
registers/stack, allowing us to catch this class of mistakes with an
assertion.
|
|
|
|
|
|
|
|
|
|
Symptom: open_port() succeeds, port program never starts but instead
seem to terminate with exit_status 150 (EINVAL+128).
When: If the command payload buffer (including the entire environment)
for the port program is between 1 to 4 bytes above the pipe capacity,
which is 65536 bytes on newer Linux, but can be as low as 4096 on older
32-bit Linux.
Since: OTP-19.0-rc1.
|
|
|
|
* zandra/update-dist-doc:
Remove unused Cookie from ControlMessage in the dist protocol doc
|
|
* rickard/ds-job-type-doc:
Minor reorganization of dirty NIF documentation
|
|
|
|
The Cookie was removed a long time ago, but the documentation was
not updated accordingly.
|
|
* raimo/uds-support/OTP-13643:
Update test cases after daily builds
Return eafnosupport when not supported
Add AF_LOCAL test cases
Handle 'undefined' in fdopen
|
|
|
|
* rickard/mach-clock-fix/OTP-13686:
Fix mach clock usage on Sierra
|
|
|
|
* lukas/erts/nif_allow_port_command_in_non_sched_thread/OTP-13442:
erts: Allow enif_port_command in non-sched thread
|
|
|
|
|
|
Yes this is an ugly workaround. One approach for a better
solution could be to introduce an internal secret atom
tagged as an atom with a unique index, but impossible
to find by string hash lookup/insert.
|
|
|
|
* egil/erts/fix-runnable_proc-race/OTP-13675:
erts: Fix profile runnable processes race
|
|
|
|
|
|
* 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
|
|
|
|
* dotsimon/erts/heart_no_kill/OTP-13650:
erts: Fix HEART_NO_KILL logic
|
|
|
|
It has to be possible to send trace messages to a port
from non-schedulers threads (specifically from the
sys_msg_dispatcher).
|
|
|
|
|
|
|
|
|
|
* egil/erts/fix-xmllint:
erts: Fix erl_nif.xml xmllint errors
|
|
* hasse/dialyzer/improve_from_form/OTP-13547:
Update primary bootstrap
stdlib: Correct types and specs
dialyzer: Minor adjustments
dialyzer: Suppress unmatched_return for send/2
dialyzer: Improve the translation of forms to types
dialyzer: Use a cache when translating forms to types
dialyzer: Prepare erl_types:t_from_form() for a cache
dialyzer: Optimize erl_types:t_form_form()
dialyzer: Correct types
syntax_tools: Correct types
erts: Correct character repr in doc of the abstract format
stdlib: Correct types and specs
|
|
|
|
* 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
|
|
A fix for running 19.0-rc2 on FreeBSD with HiPE enabled.
* erl_mmap.h: disregard MAP_NORESERVE for FreeBSD
MAP_NORESERVE is undefined in FreeBSD 10.x and later.
This is to enable 64bit HiPE experimentally on FreeBSD.
Note that on FreeBSD MAP_NORESERVE was "never implemented"
even before 11.x (and the flag does not exist in /usr/src/sys/vm/mmap.c
of 10.3-STABLE r301478 either), and HiPE was working on OTP 18.3.3,
so mandating MAP_NORESERVE on FreeBSD might not be needed.
See the following message on how MAP_NORESERVE was treated on FreeBSD:
<http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20150202/122958.html>
* erl_mmap.c: disable MAP_NORESERVE for FreeBSD
* See also <https://github.com/erlang/otp/pull/925/commits/b02ce940c8738785ad018c9f758ca0d05d256bbb>
|
|
|
|
* egil/fix-simple-crashdump-with-maps/OTP-13657:
erts: Don't crash on maps on crash dumps
|
|
* egil/lttng-change-domain:
runtime_tools: Change LTTng dyntrace domain
erts: Change LTTng otp domain
|
|
Barklund's and Virding's spec states that character literals are
represented by {integer, Line, L}. The copy-and-paste bug is fixed the
description of the abstract format.
|
|
* raimo/uds-support/OTP-13643:
Document the local (unix) address family
Remove internal state BOUND from inet_drv
|