Age | Commit message (Collapse) | Author |
|
|
|
* sverker/load-corrupt-beam/ERL-216:
erts:: Unsignify a bunch of loader variables
erts: Reject an invalid beam code header size
erts: Fix load of beam with invalid imports and atom numbers
|
|
* maint:
Fix tracing of processes executing dirty
Perform check_process_code while process is executing dirty
Fix purge of code
Reclaim literal area after purge has completed
Separate literal area from code
Conflicts:
erts/emulator/beam/global.h
|
|
* 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.
|
|
* g-andrade/kernel/fetch_ztream_dictionary/PR-1139/OTP-13842:
Update preloaded modules
Specify min zlib ver on inflateGetDictionary doc
Skip inflateGetDictionary test case if unsupported
zlib: Only link inflateGetDictionary if available
zlib: Add test case for inflateGetDictionary
zlib: support extraction of inflation dictionary
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* lukas/erts/port_monitor_mem_leak/OTP-13818:
erts: Fix port monitor memory leak
|
|
|
|
Which at the moment means zlib versions >= 1.2.8.
|
|
|
|
|
|
|
|
* maint:
Updated OTP version
Prepare release
Avoid segfault when printing slogan after crashdumping
Fix race causing lost wakeup on receive-after timeout
Conflicts:
OTP_VERSION
|
|
* maint-19:
Updated OTP version
Prepare release
Avoid segfault when printing slogan after crashdumping
Fix race causing lost wakeup on receive-after timeout
|
|
|
|
* lukas/erts/tracing/fix_sparc_align_issue/OTP-13803:
erts: Align ErtsThrPrgrLaterOp when free'ing tracer
|
|
On Sparc all structs with a double word element in are assumed
to be allocated on a two word boundary. So we have to make sure
that the ErtsThrPrgrLaterOp * points to 8 / 16 byte aligned memory.
As it only costs one word I've done it on all architectures in case
some unknown other arch also needs this.
|
|
|
|
* lukas/erts/fix_init_stop_code_load_race/OTP-13802:
erts/kernel: Fix code loading deadlock during init:stop
|
|
When init:stop is called it walks the application hierarchy
and terminates each process. Some of these processes may do
something while terminating and sometimes that something
needs to load some new code in order to work. When this happens
the code_server could just be in the process of terminating
or the erl_prim_loader could be active. In both these cases
the request to load the new code would cause a deadlock in the
termination of the system.
This commit fixes this by init rejecting attempts to load new code
when init:stop has been called and fixing a termination race in
the code_server.
This however means that the process that tried to do something
when told to terminate (for instance logging that it is terminating)
will crash instead of loading the code.
|
|
Conflicts:
lib/gs/doc/src/Makefile
|
|
* binarin/even-more-absolute-paths/PR-1103/OTP-13800:
Use perl discovered by configure
Don't make assumptions about build tools paths
|
|
|
|
* avellable/erts/correct_atomicity_typo:
Correct spelling of atomicity
|
|
|
|
* rickard/erl-crash-dump-bug/OTP-13799:
Avoid segfault when printing slogan after crashdumping
|
|
* rickard/proc-tmo-bug/OTP-13798:
Fix race causing lost wakeup on receive-after timeout
|
|
|
|
|
|
|
|
|
|
with run_erl option -sleepy-child
to provoke race when slave pty is late
|
|
|
|
|
|
|
|
maint
* raimo/erts/prim_inet-unknown-address-families/OTP-13775:
Handle AF_UNSPEC and AF_UNDEFINED correctly
|
|
* raimo/SCTP-socket-stats/ERL-102/OTP-13773:
Fix SCTP send stats in inet_drv
Test inet:getstat/1 dead for SCTP send
Fix test suite compilation warnings
|
|
* egil/erts/dont-copy-literals/OTP-13529:
erts: Refactor literal purge area arguments
erts: No need to literal opt message token
erts: Don't copy literals in enif_send
erts: Fix literal size calculation in check_process_code
erts: Remove the need for copying of literals
|
|
|
|
|