Age | Commit message (Collapse) | Author |
|
|
|
* poroh/erts/sched-stuck-fix/OTP-15941:
Infinite cycle fixed on try to change run queue (if it has already changed concurrently)
|
|
* sverker/system_info-procs-bug/ERL-979/OTP-15909:
Fix fatal bug in erts_proc_sig_signal_size
|
|
* john/erts/lists_subtract_fixes/OTP-15938/OTP-15939:
erts: Fix integer overflow in loader
erts: Fix integer overflow in list subtraction
|
|
qsort expects the comparison function to return an int; returning
an `Sint` may yield nonsensical results.
|
|
CMP_TERM returned an `Sint`, which overflowed the `int` used in
erl_rbtree for storing the comparison, causing list subtraction to
behave strangely.
|
|
concurrently)
|
|
called by
erlang:process_info(memory)
erlang:system_info(procs)
crash dump
break menu
Will crash VM if process has a pending monitor DOWN signal in its queue.
|
|
|
|
* rickard/dist-exit2/21/OTP-15867:
Don't disconnect on remote exit/2 with old incarnation as recipient
|
|
* ingela/raimo/udp-send-TOS/ERIERL-294/OTP-15747:
Introduce udp send ancillary data argument down to inet_drv
Fix old warnings
|
|
'sverker/erts/process-info-reductions-idle-proc/ERL-964/OTP-15865' into maint-21
* sverker/erts/process-info-reductions-idle-proc/ERL-964/OTP-15865:
erts: Improve test of process_info(reductions)
Revert "erts: Force process_info(reductions) as signal"
|
|
* raimo/incomplete-socket-close/ERIERL-353/OTP-15370:
Copy linger zero flag from listen socket
Test linger zero flag from listen socket
|
|
rickard/dist-exit2/21/OTP-15867
* rickard/dist-exit2/20/OTP-15867:
Don't disconnect on remote exit/2 with old incarnation as recipient
|
|
|
|
|
|
to provoke case when the main lock is released during execution.
|
|
This reverts commit 70dbf671a8196110d2aee2e7507afc2c2c75183f.
As the comment of 70dbf671a8 itself indicates, that "fix" is not really
necessary. It has, however, the bad effect of always consuming reductions of the
process you want to know reduction from, that is you can't meassure reduction
count without affecting it.
|
|
|
|
'sverker/seq-trace-label-old-heap-bug/ERL-700/OTP-15849/OTP-15858/OTP-15859' into maint-21
* sverker/seq-trace-label-old-heap-bug/ERL-700/OTP-15849/OTP-15858/OTP-15859:
erts: Fix faulty spec for seq_trace:set_token/2
erts: Fix seq_trace:print/2 for arbitrary labels
erts: Fix bug in seq_trace:set_token(label,_)
|
|
* bjorn/erts/fix-wrong-class/ERIERL-367/OTP-15834:
Fix sticky class in exception
|
|
Would raise badarg if Label was not atom or small integer.
|
|
If internal seq-trace tuple is on old heap
an incorrect ref from old to new heap was made.
|
|
When catching an exception re-throwing with a changed
class, the class could be changed to the original class
if the exception got caught and rethrown in (for example)
an after block:
sticky_class() ->
try
try
throw(reason)
catch
throw:Reason:Stack ->
erlang:raise(error, Reason, Stack)
end
after
ok
end.
|
|
|
|
into maint-21
* john/erts/fix-xxx_to_existing_atom-overflow/ERL-944/OTP-15819:
erts: Fix buffer overflow in xxx_to_existing_atom
|
|
|
|
|
|
* sverker/process_info-reductions-fix/OTP-15793:
erts: Force process_info(reductions) as signal
erts: Fix another bug in process_info(reductions)
|
|
|
|
Not 100% sure this is needed to get correct reductions
as the direct query is not done if process is RUNNING anyway.
|
|
to disregard consumed virtual reductions
which are not aggregated into p->reds
and if included may cause reduction count go backwards.
|
|
|
|
* sverker/maint-21/doc-big-creation-tags/OTP-15766:
erts: Document NEW_PID, NEW_PORT, NEWER_REFERENCE
erts: Add missing docs for DFLAG_MAP_TAG and DFLAG_BIG_CREATION
|
|
into sverker/maint-21/doc-big-creation-tags/OTP-15766
|
|
|
|
|
|
|
|
Incorrect precidence rules made the driver never
deselect the given fds.
|
|
|
|
* sverker/process_info-reductions-fix/OTP-15709:
erts: Fix bug in process_info(reductions)
erts: Use ptr_val for pointer in gc msg copy
|
|
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
|
|
Cherry-pick: 3d7d66b84b69f3eb42e8bcd8dc510b6676e31cac
Without this fix asserts would trigger in debug build
but nothing else would break.
|
|
We walk through all signal queues in the system when clearing
seq_trace, so we must be prepared to encounter all kinds of
signals.
|
|
|
|
maint-21
* max-au/erts/dirty_scheduler_shutdown/PR-2172/OTP-15690:
erts: release dirty runqueue lock before entering endless loop when BEAM is shutting down
# Conflicts:
# erts/emulator/beam/erl_process.c
|
|
shutting down
This patch fixes a problem happening when BEAM is shutting down. It is possible for a dirty scheduler to take the lock, and keep it, when the system is shutting down. It may also happen that a normal scheduler decides to schedule some dirty job (example is major garbage collection that results in migrating the process into dirty CPU queue), and hangs trying to take the lock that will never be released.
To fix the problem, either release the lock before entering endless wait loop, or reverse the order in which schedulers are stopped. Either fix works, and, of course, it works even better to apply both.
|
|
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.
|
|
|
|
into sverker/maint/ets-no-mbuf-trapping/OTP-15660
|