aboutsummaryrefslogtreecommitdiffstats
path: root/erts
AgeCommit message (Collapse)Author
2018-11-09Prepare releaseErlang/OTP
2018-11-09Merge branch 'john/erts/OTP-18.3.4/minusminus_trapping/OTP-15371' into maint-18Erlang/OTP
* john/erts/OTP-18.3.4/minusminus_trapping/OTP-15371: Optimize operator '--' and yield on large inputs
2018-11-05Optimize operator '--' and yield on large inputsJohn Högberg
The removal set now uses a red-black tree instead of an array on large inputs, decreasing runtime complexity from `n*n` to `n*log(n)`. It will also exit early when there are no more items left in the removal set, drastically improving performance and memory use when the items to be removed are present near the head of the list. This got a lot more complicated than before as the overhead of always using a red-black tree was unacceptable when either of the inputs were small, but this compromise has okay-to-decent performance regardless of input size. Co-authored-by: Dmytro Lytovchenko <[email protected]>
2018-10-26Prepare releaseErlang/OTP
2018-09-19erts: Fix memory leak when sending to terminating portSverker Eriksson
Cherry-picked from 7c5fcd3f2701cbb614930682ac52ff75b9c26e6c Error: Leak_DefinitelyLost erts_alloc:230 (-> 0x52E54D) [erl_alloc.h] port_task_alloc:154 (-> 0x52F3CA) [erl_port_task.c] erts_port_task_alloc_p2p_sig_data:212 (-> 0x52F5D3) [erl_port_task.c] erts_port_output:2147 (-> 0x4F6057) [io.c] erts_port_command:4126 (-> 0x4FA10E) [io.c] do_send:2200 (-> 0x4E4C64) [bif.c] erl_send:2494 (-> 0x4E5E09) [bif.c] process_main:1730 (-> 0x43ADA5) [beam_emu.c]
2017-11-15Prepare releaseErlang/OTP
2017-11-15Merge branch 'rickard/timer-sid-bug/OTP-14548' into maint-18Erlang/OTP
* rickard/timer-sid-bug/OTP-14548: Fix scheduler id field in timers
2017-11-15Merge branch 'sverker/r16/binary_to_atom-utf8-crash/ERL-474/OTP-14590' into ↵Erlang/OTP
maint-18 * sverker/r16/binary_to_atom-utf8-crash/ERL-474/OTP-14590: erts: Fix crash in binary_to_atom/term for invalid utf8
2017-11-15Merge branch 'sverker/big-bxor-bug/ERL-450/OTP-14514' into maint-18Erlang/OTP
* sverker/big-bxor-bug/ERL-450/OTP-14514: erts: Fix bug in bxor of a big negative number
2017-11-15Merge branch 'sverker/prealloc-race-bug/OTP-14491' into maint-18Erlang/OTP
* sverker/prealloc-race-bug/OTP-14491: erts: Fix bug in quick alloc
2017-08-30erts: Fix crash in binary_to_atom/term for invalid utf8Sverker Eriksson
such as a sub-binary, of a correct utf8 string, that ends in the middle of a character.
2017-08-23Fix scheduler id field in timersRickard Green
2017-07-12erts: Fix bug in bxor of a big negative numberSverker Eriksson
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.
2017-06-30erts: Fix bug in quick allocSverker Eriksson
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.
2017-05-10Merge tag 'OTP-18.2.4.0.1' into maint-18Rickard Green
=== OTP-18.2.4.0.1 === Changed Applications: - erts-7.2.1.1 Unchanged Applications: - asn1-4.0.1 - common_test-1.11.2 - compiler-6.0.2 - cosEvent-2.2 - cosEventDomain-1.2 - cosFileTransfer-1.2 - cosNotification-1.2 - cosProperty-1.2 - cosTime-1.2 - cosTransactions-1.3 - crypto-3.6.2 - debugger-4.1.1 - dialyzer-2.8.2 - diameter-1.11.1 - edoc-0.7.17 - eldap-1.2 - erl_docgen-0.4.1 - erl_interface-3.8.1 - et-1.5.1 - eunit-2.2.12 - gs-1.6 - hipe-3.14 - ic-4.4 - inets-6.1.1 - jinterface-1.6.1 - kernel-4.1.1 - megaco-3.18 - mnesia-4.13.2 - observer-2.1.1 - odbc-2.11.1 - orber-3.8 - os_mon-2.4 - ose-1.1 - otp_mibs-1.1 - parsetools-2.1.1 - percept-0.8.11 - public_key-1.1 - reltool-0.7 - runtime_tools-1.9.2 - sasl-2.6.1 - snmp-5.2.1 - ssh-4.2.1 - ssl-7.2 - stdlib-2.7 - syntax_tools-1.7 - test_server-3.9.1 - tools-2.8.2 - typer-0.9.10 - webtool-0.9 - wx-1.6 - xmerl-1.3.9 * tag 'OTP-18.2.4.0.1': Updated OTP version Prepare release Conflicts: OTP_VERSION erts/vsn.mk otp_versions.table
2017-05-10Prepare releaseRickard Green
2017-05-10Merge branch 'rickard/rq-len/OTP-13201'Rickard Green
* rickard/rq-len/OTP-13201: Fix testcase Light weight statistics of run queue lengths
2017-02-01Prepare releaseErlang/OTP
2017-02-01Merge branch 'sverker/bin2term-zlib-bug/ERL-340/OTP-14159' into maint-18Erlang/OTP
* sverker/bin2term-zlib-bug/ERL-340/OTP-14159: erts: Fix binary_to_term for compressed and zlib >= v1.2.9
2017-02-01Merge branch 'egil/erts/fix_scheduler_suspend/ERL-94/PR-978/OTP-13425' into ↵Erlang/OTP
maint-18 * egil/erts/fix_scheduler_suspend/ERL-94/PR-978/OTP-13425: erts: Fix install of suspend handler
2017-02-01Merge branch 'rickard/thr-prgr-unmanaged-delay-bug/OTP-13869' into maint-18Erlang/OTP
* rickard/thr-prgr-unmanaged-delay-bug/OTP-13869: Fix erts_thr_progress_unmanaged_delay()
2017-02-01Merge branch 'rickard/drv-send-term-thr-bug/OTP-13866' into maint-18Erlang/OTP
* rickard/drv-send-term-thr-bug/OTP-13866: Fix thread calls to erl_drv_send_term()/erl_drv_output_term()
2017-01-23erts: Fix binary_to_term for compressed and zlib >= v1.2.9Sverker Eriksson
Problem: z_stream was incorrectly copied with memcpy which just happened to work with zlib < v1.2.9. Solution: Avoid copying z_stream.
2016-09-05Fix erts_thr_progress_unmanaged_delay()Rickard Green
Thread progress leader update did not cache current unmanaged index when waiting for unmanaged threads. This caused erts_thr_progress_unmanaged_delay() to stop working until a new leader took over.
2016-09-05Fix thread calls to erl_drv_send_term()/erl_drv_output_term()Rickard Green
2016-08-31erts: Fix install of suspend handlerLukas Larsson
This commit makes sure to setup the suspend handler to matter what +B option is given at the command line.
2016-08-11Prepare releaseErlang/OTP
2016-08-11Merge branch 'rickard/erl-crash-dump-bug/OTP-13799' into maint-18Erlang/OTP
* rickard/erl-crash-dump-bug/OTP-13799: Avoid segfault when printing slogan after crashdumping
2016-08-11Merge branch 'rickard/proc-tmo-bug/OTP-13798' into maint-18Erlang/OTP
* rickard/proc-tmo-bug/OTP-13798: Fix race causing lost wakeup on receive-after timeout
2016-08-11Avoid segfault when printing slogan after crashdumpingRickard Green
2016-08-11Fix race causing lost wakeup on receive-after timeoutRickard Green
2016-07-23Prepare releaseErlang/OTP
2016-07-08erts: Fix deadlock in ets:update_counter/4Sverker Eriksson
in 'set' with 'write_concurrency' when inserting default object causes table to grow and the bucket to split is protected by same lock as the key.
2016-07-08erts: Optimize db_finalize_dbterm_hashSverker Eriksson
Always free term after WUNLOCK_HASH
2016-04-01Prepare releaseErlang/OTP
2016-04-01Merge branch 'sverker/erts/trap_exit-race/OTP-13452' into maint-18Erlang/OTP
* sverker/erts/trap_exit-race/OTP-13452: erts: Fix race for process_flag(trap_exit,true)
2016-04-01Merge branch 'rickard/proc-free-fix/OTP-13446' into maint-18Erlang/OTP
* rickard/proc-free-fix/OTP-13446: Fix bad refc management of process struct # Conflicts: # erts/emulator/beam/erl_process.c
2016-04-01Merge branch 'rickard/port-sig-dropped-fix/OTP-13424' into maint-18Erlang/OTP
* rickard/port-sig-dropped-fix/OTP-13424: Fix implementation of dropped signal to port
2016-04-01Merge branch 'rickard/ethr-event-futex-wait-timeout/OTP-13420' into maint-18Erlang/OTP
* rickard/ethr-event-futex-wait-timeout/OTP-13420: Fix premature timeouts for ethread events on Linux
2016-04-01Merge branch 'rickard/last_calls/OTP-13418' into maint-18Erlang/OTP
* rickard/last_calls/OTP-13418: Unbreak process_info(Pid,last_calls)
2016-04-01erts: Fix race for process_flag(trap_exit,true)Sverker Eriksson
and a concurrent exit signal. We now actually guarantee that the process will not die from exit signal *after* the call to process_flag(trap_exit,true) has returned. The race is narrow and probably quite hard to observe even if you manage to provoke it. Has only been confirmed with the help of return trace and a sleep in send_exit_signal(). Solution: Seize status lock to prevent send_exit_signal() from reading an old status (without TRAP_EXIT) and then writing PENDING_EXIT after TRAP_EXIT has been set by process_flag_2().
2016-03-31Fix bad refc management of process structRickard Green
2016-03-18Fix implementation of dropped signal to portRickard Green
2016-03-16Fix premature timeouts for ethread events on LinuxRickard Green
2016-03-16Unbreak process_info(Pid,last_calls)Rickard Green
2016-03-16erts: Create erl_crash.dump when out of memoryLukas Larsson
This was accidentally removed in commit cd6903be0740db
2016-03-14Prepare releaseErlang/OTP
2016-03-11Update preloaded modulesLars Thorsen
2016-03-10Prepare releaseErlang/OTP
2016-03-09erts: Fix wobbling tests in nif_SUITESverker Eriksson
No point in checking tmp_alloc instance 0 as any non-scheduler thread could race us.