aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator
AgeCommit message (Collapse)Author
2019-06-27erts: Cleanup start of all erts threads to ABORT when failingLukas Larsson
Before this change erts used to crash dump and then abort, but a crash dump is not really usefull at this point and it caused all sort of lock problems when crash dumping that early in the system boot, so now it is changed to only dump core instead. Also in the process I cleaned up some the code so that it does not to a lot of things that are not needed.
2019-06-27Merge branch ↵Micael Karlberg
'bmk/erts/esock/incorrect_map_size_check_update_membership/OTP-15908' into maint
2019-06-27Merge branch 'lukas/erts/dist-optimize-large-data/PR-2291/OTP-15926' into maintLukas Larsson
* lukas/erts/dist-optimize-large-data/PR-2291/OTP-15926: erts: Don't copy binary data from dist data erts: Move copy of payload to receiving process
2019-06-25Merge pull request #2250 from ↵Rickard Green
rickard-green/rickard/re-unicode-validation/OTP-15831/OTP-15836/ERL-876 re unicode validation
2019-06-24Merge branch 'sverker/system_info-procs-bug/ERL-979/OTP-15909' into maintSverker Eriksson
* sverker/system_info-procs-bug/ERL-979/OTP-15909: Fix fatal bug in erts_proc_sig_signal_size
2019-06-24Merge branch 'bjorn/erts/unoptimized-plus' into maintBjörn Gustavsson
* bjorn/erts/unoptimized-plus: Handle addition of bignum + variable in unoptimized code
2019-06-24[esock|test] Add test case for IP add|drop membershipMicael Karlberg
Add a simple test case that tests that its possible to perform socket:setopt(Socket, ip, [add|drop]_membership, MReq). OTP-15908
2019-06-19Merge branch 'sverker/hipe-x86-flush-icache' into maintSverker Eriksson
2019-06-19erts: Call __builtin___clear_cache for hipe x86 codeSverker Eriksson
Seems the right thing to do as the compiled code is not necessarily executed by a single CPU thread. Only warning if old gcc and will work as good/bad as it did before.
2019-06-19Merge branch 'sverker/fix-hipe-arm-old-gcc-error' into maintSverker Eriksson
2019-06-19Fix fatal bug in erts_proc_sig_signal_sizeSverker Eriksson
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.
2019-06-19erts: Don't copy binary data from dist dataLukas Larsson
It is already a refc, so no need to create a new one.
2019-06-19erts: Move copy of payload to receiving processLukas Larsson
2019-06-18Merge branch 'rickard/re-yield-unicode-validation/OTP-15836/ERL-876' into ↵Rickard Green
rickard/re-unicode-validation/OTP-15831/OTP-15836/ERL-876 * rickard/re-yield-unicode-validation/OTP-15836/ERL-876: Update runtime dependency from stdlib to erts Yield when validating UTF8 for long subject in re:run() Add yield_on_subject_validation() test
2019-06-18Yield when validating UTF8 for long subject in re:run()Rickard Green
2019-06-18Merge branch 'rickard/re-global-unicode-validation/OTP-15831/ERL-876' into ↵Rickard Green
rickard/re-unicode-validation/OTP-15831/OTP-15836/ERL-876 * rickard/re-global-unicode-validation/OTP-15831/ERL-876: Update runtime dependency from stdlib to erts Only validate subject once when global is used in re:run() Add global_unicode_validation() test
2019-06-18[esock] socket:setopt add_membership fails with badargMicael Karlberg
An invalid value test caused the socket:setopt(Socket, ip, add_membership, ip_mreq()) to fail with badarg. OTP-15908 (ERL-980)
2019-06-18Merge branch 'kjell/stdlib/ets_ordered_set_slow_react/OTP-15906' into maintKjell Winblad
* kjell/stdlib/ets_ordered_set_slow_react/OTP-15906: ETS ordered_set: Improvements to the CA tree implementation
2019-06-18ETS ordered_set: Improvements to the CA tree implementationKjell Winblad
This commit only affects the implementation of ETS `ordered_set` tables with the `write_concurrency` option enabled. Such tables are implemented with a data structure that is called the contention adapting search tree (CA tree). This commit introduces the following changes: * This commit causes a join to be triggered in one randomly selected base node in about one of 1000 read unlock calls for base node locks. No such joins happened before this commit. Before this commit, operations that only acquired looks in read-mode never triggered any contention adaptation. Therefore, the CA tree could get stuck in a sub-optimal state in certain scenarios. This could happen, for example, when a CA tree is first populated with parallel inserts (which will cause splits of base nodes) and then only read-only operations are applied to the data structure. Benchmark results from the `ets_SUITE:lookup_catree_par_vs_seq_init_benchmark/0` benchmark function (which is included in this commit) shows that this change can improve the throughput of the CA tree in the scenario described above. * Read-only operations will now also increase values of statistics counters when they detect that they need to wait for other operations. Only write operation changed statistics counters before this commit. This improves the statistics that the adaptation heuristics is based on. * Additionally, this commit adds an upper and lower limit to the contention statistics variables in the base nodes. Such limits did not exist before this commit. This should, for example, make the CA tree more responsive to contention after long periods of low contention.
2019-06-18Merge pull request #2270 from essen/dist-get-stat-real-pend-value/OTP-15905Lukas Larsson
Return real pend value in erlang:dist_get_stat/1
2019-06-18Merge pull request #2272 from ↵Lukas Larsson
garazdawi/lukas/erts/fix_active_n_close_win32/ERL-960/OTP-15901 Fix {active,N} close race condition on windows
2019-06-17Merge branch 'rickard/dist-exit2/22/OTP-15867' into maint-22Erlang/OTP
* rickard/dist-exit2/22/OTP-15867: Don't disconnect on remote exit/2 with old incarnation as recipient
2019-06-17Merge branch 'john/erts/fix-xxx_to_existing_atom-overflow/ERL-944/OTP-15819' ↵Erlang/OTP
into maint-22 * john/erts/fix-xxx_to_existing_atom-overflow/ERL-944/OTP-15819: erts: Fix buffer overflow in xxx_to_existing_atom
2019-06-17Merge branch 'john/erts/fix-conservative/OTP-15881' into maintJohn Högberg
* john/erts/fix-conservative/OTP-15881: erts: Relax the constraint introduced in OTP-15871
2019-06-17Merge branch 'rickard/dist-exit2/22/OTP-15867' into maintRickard Green
* rickard/dist-exit2/22/OTP-15867: Don't disconnect on remote exit/2 with old incarnation as recipient
2019-06-17Merge branch 'ingela/raimo/udp-send-TOS/ERIERL-294/OTP-15747' into ↵Ingela Anderton Andin
ingela/merge-294 * ingela/raimo/udp-send-TOS/ERIERL-294/OTP-15747: Introduce udp send ancillary data argument down to inet_drv Fix old warnings
2019-06-17Merge branch 'rickard/dist-exit2/21/OTP-15867' into ↵Rickard Green
rickard/dist-exit2/22/OTP-15867 * rickard/dist-exit2/21/OTP-15867: Don't disconnect on remote exit/2 with old incarnation as recipient
2019-06-17Merge branch 'rickard/dist-exit2/20/OTP-15867' into ↵Rickard Green
rickard/dist-exit2/21/OTP-15867 * rickard/dist-exit2/20/OTP-15867: Don't disconnect on remote exit/2 with old incarnation as recipient
2019-06-17Don't disconnect on remote exit/2 with old incarnation as recipientRickard Green
2019-06-17Introduce udp send ancillary data argument down to inet_drvRaimo Niskanen
2019-06-16Document extra message element also where trace message format is describedPéter Gömöri
2019-06-14Merge branch 'bmk/erts/esock/20190528/pattern' into maintMicael Karlberg
2019-06-14[esock|test] Ensure only "real" IPv6 address'es are acceptedMicael Karlberg
When geting the local address, make sure we don't accept the loopback address.
2019-06-14Merge branch 'bmk/erts/esock/20190529/expose_select_to_the_caller/OTP-15731' ↵Micael Karlberg
into maint
2019-06-13erts: Fix benign preprocessor error from "make depend"Sverker Eriksson
on non-Linux with gcc < 4.3 hipe/hipe_arm.c:65: #error "Don't know how to flush instruction cache" This is benign because "make depend" runs preprocessor on more files than actually needed.
2019-06-13erts: Relax the constraint introduced in OTP-15871John Högberg
2019-06-12Handle addition of bignum + variable in unoptimized codeBjörn Gustavsson
Also handles code compiled by OTP 21 and earlier.
2019-06-12Merge branch 'raimo/incomplete-socket-close/ERIERL-353/OTP-15370' into maintRaimo Niskanen
* raimo/incomplete-socket-close/ERIERL-353/OTP-15370: Copy linger zero flag from listen socket Test linger zero flag from listen socket
2019-06-12Merge branch ↵Erlang/OTP
'sverker/erts/process-info-reductions-idle-proc/ERL-964/OTP-15865' into maint-22 * 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"
2019-06-12Merge branch 'sverker/erts/break-p-segv/ERL-965/OTP-15873' into maint-22Erlang/OTP
* sverker/erts/break-p-segv/ERL-965/OTP-15873: erts: Fix SEGV crash on shell break (p)roc info
2019-06-11Merge branch 'john/erts/fix-bad-get_tuple_element-opt/OTP-15871/ERIERL-374' ↵John Högberg
into maint * john/erts/fix-bad-get_tuple_element-opt/OTP-15871/ERIERL-374: erts: Fix bad loader optimization of get_tuple_element
2019-06-10Merge branch 'sverker/erts/hipe-arm-freebsd-clear-cache/ERL-958' into maintSverker Eriksson
OTP-15874 PR-2266 * sverker/erts/hipe-arm-freebsd-clear-cache/ERL-958: erts: Fix hipe_flush_icache_range for FreeBSD on ARM
2019-06-10erts: Fix hipe_flush_icache_range for FreeBSD on ARMSverker Eriksson
Avoid old Linux specific syscall assembler if we can.
2019-06-10Merge branch ↵Sverker Eriksson
'sverker/erts/process-info-reductions-idle-proc/ERL-964/OTP-15865' into maint * 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"
2019-06-10erts: Improve test of process_info(reductions)Sverker Eriksson
to provoke case when the main lock is released during execution.
2019-06-10Merge branch 'sverker/erts/break-p-segv/ERL-965/OTP-15873' into maintSverker Eriksson
* sverker/erts/break-p-segv/ERL-965/OTP-15873: erts: Fix SEGV crash on shell break (p)roc info
2019-06-10erts: Fix bad loader optimization of get_tuple_elementJohn Högberg
The following sequence would be wrongly optimized into a i_get_tuple_element2 instruction, reading an element from the wrong tuple: {get_tuple_element,{x,0},1,{x,0}}. {get_tuple_element,{x,0},2,{x,1}}.
2019-06-04erts: Fix SEGV crash on shell break (p)roc infoSverker Eriksson
esdp==NULL if run by non scheduler thread.
2019-06-04erts: Fix {active,N} close race condition on windowsLukas Larsson
When a close is detected on windows, we need to keep track of it as it will not trigger again.
2019-06-04Revert "erts: Force process_info(reductions) as signal"Sverker Eriksson
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.