Age | Commit message (Collapse) | Author |
|
Symptom: VM crash when erlang:trace_pattern(on_load, ..) is set and
module with -on_load is loaded.
Problem: Tracing and -on_load clash in their use of Export.beam[1]
Solution: Do not do call set_default_trace_pattern in finish_loading_1
for modules with -on_load. finish_after_on_load_2 will do that anyway.
|
|
* sverker/big-bxor-bug/ERL-450/OTP-14514:
erts: Fix bug in bxor of a big negative number
|
|
* sverker/prealloc-race-bug/OTP-14491:
erts: Fix bug in quick alloc
|
|
Wrong result for
(X bsl WS) bxor Y.
where
X is any negative integer
Y is any integer that does not require more words than X
WS is erlang:system_info(wordsize) or larger
Fix: The subtraction of 1 (for 2-complement conversion)
must be carried along all the way to the last words.
|
|
The effect of the race is that a pre-allocated memory block
is inserted last without updating tail.data.last, which will cause
all subsequent insertions to also fail to update tail.data.last.
Hence all pre-allocation for this quick alloc instance is leaked
for this thread and will fallback on erts_alloc.
|
|
* rickard/statistics/OTP-14484:
Fix statistics(wall_clock) and statistics(runtime) implementation
|
|
into maint-19
* lukas/erts/fix_outputv_port_task_cleanup/ERL-428/OTP-14481:
fixup! erts: Cleanup dropped port tasks correctly
erts: Add tests to detect port close race
erts: Cleanup dropped port tasks correctly
|
|
|
|
|
|
Before this fix, the extra data attached to a port task had to
be cleaned up by the calling function. This caused problems
because the outputv call, co-allocates the extra data with the
port task. So in rare circumstances the port task would be
free'd before the extra data was free'd which led to segfault
when looking at the port task.
This has been fixed by the generic PORT_TASK_ABORT behaviour
being used even for tasks dropped in the erts_schedule_proc2port_signal
API.
|
|
* rickard/purge-hibernated-19/ERIERL-24/OTP-14444:
Update testcase to check that purge handle hibernated process correct
Do not GC hibernated process from other processes
Fix check_process_code() on hibernated process
|
|
* rickard/purge-hibernated:
Do not GC hibernated process from other processes
Fix check_process_code() on hibernated process
Conflicts:
erts/emulator/beam/beam_bif_load.c
erts/emulator/beam/erl_gc.c
erts/emulator/beam/erl_process.h
|
|
|
|
|
|
The signal handler will now schedule a sigterm message instead of sending
the message in the signal handler. The signal handler must refrain from
memory allocations and thus the event is scheduled.
|
|
|
|
* lukas/erts/port_control_emasculate_binary/OTP-14231:
erts: Fix emasculation of binaries in port_control
|
|
This fixes a bug introduced in 3671dd2d
|
|
again
* sverker/include-module-literal-size:
erts: Beautify loaded()
erts: Fix literal size bug when only old instance exists
|
|
by removing some unnecessary conditions and
remove unused and faulty summation for 'cur' and 'old'.
|
|
fix for already merged but not releases 808b2f4d53e446aed07f85716c5c4b85abb3d18a
|
|
|
|
* sverker/enif_send-noproc-fix:
erts: Fix enif_send from noproc and no msg_env
|
|
* sverker/include-module-literal-size:
erts: Add size of literals to module code size
|
|
* sverker/round-bug/OTP-14227:
erts: Fix round/1 for large floats
|
|
1> round(6209607916799025.0).
6209607916799026
Problem: Adding/subtracting 0.5 and large double floats between
(1 bsl 52) and (1 bsl 53) does not give reliable results.
Solution: Use round() function in math.h.
|
|
OTP-14202
* rickard/binary-refc:
Atomic reference count of binaries also in non-SMP
Conflicts:
erts/emulator/beam/beam_bp.c
|
|
NIF resources was not handled in a thread-safe manner in the runtime
system without SMP support.
As a consequence of this fix, the following driver functions are now
thread-safe also in the runtime system without SMP support:
- driver_free_binary()
- driver_realloc_binary()
- driver_binary_get_refc()
- driver_binary_inc_refc()
- driver_binary_dec_refc()
|
|
OTP-14122
* rickard/ds-fix:
Dirty schedulers should not touch scheduler data pointed to by process struct
Conflicts:
erts/emulator/beam/erl_process.c
|
|
* rickard/hole-marker:
Use a hole-marker that cannot be mistaken for a valid term on the heap
|
|
|
|
This fixes commit f0867aa2ccbbf5677e0577bba08f8b7bc53ec0ed
|
|
Conflicts:
OTP_VERSION
erts/doc/src/notes.xml
erts/emulator/sys/unix/erl_unix_sys.h
erts/emulator/sys/unix/sys.c
erts/vsn.mk
lib/crypto/c_src/crypto.c
lib/crypto/doc/src/notes.xml
lib/crypto/vsn.mk
lib/inets/doc/src/notes.xml
lib/inets/vsn.mk
lib/ssh/doc/src/notes.xml
lib/ssh/src/ssh.app.src
lib/ssh/src/ssh_connection_handler.erl
lib/ssh/vsn.mk
otp_versions.table
|
|
|
|
in crash dump and (l)oaded command in break menu.
|
|
* sverker/bin2term-zlib-bug/ERL-340/OTP-14159:
erts: Fix binary_to_term for compressed and zlib >= v1.2.9
|
|
maint-18
* egil/erts/fix_scheduler_suspend/ERL-94/PR-978/OTP-13425:
erts: Fix install of suspend handler
|
|
* rickard/thr-prgr-unmanaged-delay-bug/OTP-13869:
Fix erts_thr_progress_unmanaged_delay()
|
|
* rickard/drv-send-term-thr-bug/OTP-13866:
Fix thread calls to erl_drv_send_term()/erl_drv_output_term()
|
|
* sverker/bin2term-zlib-bug/ERL-340/OTP-14159:
erts: Fix binary_to_term for compressed and zlib >= v1.2.9
|
|
Problem: z_stream was incorrectly copied with memcpy
which just happened to work with zlib < v1.2.9.
Solution: Avoid copying z_stream.
|
|
* move signal handler setup
|
|
* sverker/trace_gc-bug:
erts: Fix GC tracing to use temp heap
erts: Assert sufficient space need after GC
|
|
* rickard/no-harddebug:
Do not automatically define HARDDEBUG when DEBUG is defined
|
|
OTP-14135
* rickard/abandoned-heap-bugs:
Fix memory leak of temporary heap
|
|
|
|
Only try direct allocation on receiver heap when called
in a real process context to avoid trylock on our own main lock.
|
|
|
|
This bug was introduced in previous commit, and has never been
released in an official OTP version.
|
|
OTP-14122
* rickard/ds-fixes:
Fix call time tracing with dirty schedulers
|