| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |\
| | |
| | |
| | |
| | |
| | |
| | | |
rickard/aliasmonitor-fix/25.3/OTP-18557
* rickard/aliasmonitor-fix/24.3/OTP-18557:
[erts] Fix erroneous removal of alias from alias table
|
| | | |
|
| |\ \
| | | |
| | | |
| | | |
| | | | |
rickard-green/rickard/alias-cleanup-fix/25.2.3/GH-6947/OTP-18496
Alias cleanup fix
|
| | |\ \
| | | |/
| | | |
| | | |
| | | |
| | | |
| | | | |
rickard/alias-cleanup-fix/25.2.3/GH-6947/OTP-18496
* rickard/alias-cleanup-fix/24.3/GH-6947/OTP-18496:
[erts] Ensure cleanup of alias table on alias destruction
|
| | | | |
|
| |\ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* maint-24:
Updated OTP version
Prepare release
Update copyright year
|
| | | | | |
|
| | |\ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
* bjorn/erts/max_heap_size/24/OTP-18463:
Exit process immediately when the max heap size is exceeded
|
| | | | |/
| | | |/|
| | | | |
| | | | |
| | | | |
| | | | | |
Executing receive-related instructions would cause the process to
enter a suspended state forever. Avoid that by scheduling out
immediately after any GC if the process is exiting.
|
| | | | | |
|
| | |\ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
* rickard/unlink-exit-fix/24.3.4/OTP-18177:
[erts] Fix dist unlink-id-ack signal memory leak
[erts] Don't send exit signal due to a link with ongoing unlink op
|
| | |\ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
* rickard/pi-msgq-len-fix/OTP-18169:
[erts] Fix faulty assert
[erts] Fix process_info(Pid, message_queue_len) on other process
|
| | |\ \ \ \ \
| | | |_|_|/ /
| | |/| | | |
| | | | | | |
| | | | | | |
| | | | | | | |
* rickard/spawn_request-fix/23.3.4/OTP-18164:
[erts] Fix lost exit signal from parent to child due to link
[erts] Fix lost exit signal due to connection loss
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
The 2-tuple {max_heap_size, Map} was accidentally lost.
https://github.com/erlang/otp/issues/6922
Introduced by 8d5f5ef0b5bd87a79390fe767cbfed9827ba66fe
in OTP 26.0-rc1.
|
|\ \ \ \ \ \ \
| |/ / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
* maint:
Eliminate "mutable variables"
Exit process immediately when the max heap size is exceeded
|
| |\ \ \ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
* bjorn/erts/max_heap_size/25/OTP-18463:
Exit process immediately when the max heap size is exceeded
|
| | | |_|_|_|/
| | |/| | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Executing receive-related instructions would cause the process to
enter a suspended state forever. Avoid that by scheduling out
immediately after any GC if the process is exiting.
|
| | | | | | | |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Extending the amount of significant bits in node local process identifiers
and port identifiers from 28 bits to 60 bits on 64-bit runtime systems. This
makes these identifiers large enough to in practice never having to be reused
during the life time of a node.
|
|\ \ \ \ \ \ \
| |/ / / / / / |
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | | |
Makes it easier to grep for.
|
|/ / / / / |
|
|\ \ \ \ \ |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Symptom:
Sending to a spawning process (pid returned from erlang:processes/0)
could read an uninitiated p->sig_inq_buffers and crash the VM.
Problem:
At send, p->sig_inq_buffers is read without any process lock.
At process spawn, the Process struct is inserted into proc table
with only a handful member initiated but with all locks seized.
p->siq_inq_buffers was not part of those handful early initiated.
Hence, sig_inq_buffers could be read uninitiated in a short race
when the pid is first made accessible in proc table.
Since:
Bug exists since OTP-25.0 when parallel receive buffers
were introduced.
Seen:
Seen when system process literal_area_collector sends signals
to all processes as part of a module purge operation.
|
| | | | | | |
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | | |
Don't lose original failure reason,
instead amend "Leaked connections".
|
|\ \ \ \ \ |
|
| | | | | | |
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
* rickard/unlink-exit-fix/OTP-18177:
[erts] Fix dist unlink-id-ack signal memory leak
[erts] Don't send exit signal due to a link with ongoing unlink op
|
| |\ \ \ \ \ \
| | | |_|_|_|/
| | |/| | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
rickard/unlink-exit-fix/OTP-18177
* rickard/unlink-exit-fix/24.3.4/OTP-18177:
[erts] Fix dist unlink-id-ack signal memory leak
[erts] Don't send exit signal due to a link with ongoing unlink op
|
| | |\ \ \ \ \
| | | |_|/ / /
| | |/| | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
rickard/unlink-exit-fix/24.3.4/OTP-18177
* rickard/unlink-exit-fix/23.3.4/OTP-18177:
[erts] Fix dist unlink-id-ack signal memory leak
[erts] Don't send exit signal due to a link with ongoing unlink op
|
| | | | | | | |
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
* rickard/spawn_request-fix/OTP-18164:
[erts] Fix lost exit signal from parent to child due to link
[erts] Fix lost exit signal due to connection loss
|
| |\ \ \ \ \ \ \
| | |/ / / / / /
| |/| | | | / /
| | | |_|_|/ /
| | |/| | | |
| | | | | | |
| | | | | | |
| | | | | | | |
rickard/spawn_request-fix/OTP-18164
* rickard/spawn_request-fix/23.3.4/OTP-18164:
[erts] Fix lost exit signal from parent to child due to link
[erts] Fix lost exit signal due to connection loss
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
An exit signal from a parent process to a child process due to a link
was lost if:
* the parent process terminated before the spawn-request had completed,
* the spawn-request was a distributed, and
* the exit reason was larger than one machine word.
|
| | | |/ / /
| | |/| | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Loss of a connection over which a not yet completed spawn request was
ongoing could cause loss of exit signals. Such loss of exit signals was
very rare. Besides the above described connection loss also the following
conditions had to be satisfied:
* The spawn request that was interrupted by the connection loss also had
to set up a link between the parent process and the child process.
* The parent process that issued the spawn request also had to be
terminating while the spawn request was interrupted by the connection
loss.
* The same parent process also had to have made other spawn requests to
other nodes than to the node to which the connection was lost.
* These spawn requests to the other nodes also had to set up links.
* These spawn requests to the other nodes also had to be not yet completed
at the time of the connection loss. That is, the spawn reply from the
child process had not yet reached the parent process.
If all the conditions above were met, exit signals to the children spawned
due to the above described spawn requests to other nodes *could* be lost.
The above bug also caused a significant memory leak when it was triggered
since the destruction of the parent process never completed.
|
|\ \ \ \ \ \
| |_|_|_|/ /
|/| | | | /
| | |_|_|/
| |/| | | |
* rickard/pi-msgq-len-fix/OTP-18169:
[erts] Fix process_info(Pid, message_queue_len) on other process
|
| | | | | |
|
| |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
It is possible to set the maximum heap size for the process
using process_flag(max_heap_size, #{size => (1 bsl 59) -1}).
However command line parameter +hmax would not work with anything
beyond 4 Gb (536870911 words) due to signed int32 used to parse
the command line.
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Parent process information is available in the VM process structure,
but is not exposed via process_info. Sometimes it is very convenient
to know who spawned processes that are not supporting any OTP
behaviours (where this information is stored in a process dictionary).
Parent process is returned only for locally started processes. Remotely
started process, or 'init' process that has no parent, return 'undefined'.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Some test cases produce 20+ Mb of debug output which does
not help to figure out a problem. This change suppresses
logs, leaving a chance to remove suppression for local runs.
|
|\ \ \ \
| | |_|/
| |/| |
| | | |
| | | | |
* maint:
Update copyright year
|
| | | | |
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
* rickard/rm-peer-fallbacks:
Remove fallbacks needed before the peer module was merged
|
| | | | | |
|