aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam
AgeCommit message (Collapse)Author
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-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-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-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-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-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/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-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-08erts: Fix alloc_SUITE:rbtree and migration for win64Sverker Eriksson
One little (unsigned long) left behind.
2016-03-01Merge branch 'sverk/halt-INT_MIN' into maintSverker Eriksson
OTP-13251 * sverk/halt-INT_MIN: erts: Make erlang:halt() accept bignums as Status erts: Change erl_exit into erts_exit kernel: Remove calls to erl_exit
2016-02-25Merge branch 'egil/heart-callback/OTP-13250' into maintBjörn-Egil Dahlberg
2016-02-24erts: Make erlang:halt() accept bignums as StatusSverker Eriksson
Just mask away the high bits to get a more tolerant erlang:halt that behaves the same on 32 and 64 bit architectures.
2016-02-24erts: Change erl_exit into erts_exitSverker Eriksson
This is mostly a pure refactoring. Except for the buggy cases when calling erlang:halt() with a positive integer in the range -(INT_MIN+2) to -INT_MIN that got confused with ERTS_ABORT_EXIT, ERTS_DUMP_EXIT and ERTS_INTR_EXIT. Outcome OLD erl_exit(n, ) NEW erts_exit(n, ) ------- ------------------- ------------------------------------------- exit(Status) n = -Status <= 0 n = Status >= 0 crashdump+abort n > 0, ignore n n = ERTS_ERROR_EXIT < 0 The outcome of the old ERTS_ABORT_EXIT, ERTS_INTR_EXIT and ERTS_DUMP_EXIT are the same as before (even though their values have changed).
2016-02-23Do not wait for main lock when looking up process not runningRickard Green
2016-02-22Merge branch 'sverk/proc-lock-check-fix' into maintSverker Eriksson
* sverk/proc-lock-check-fix: erts: Fix lock checker for process locks
2016-02-19Merge branch 'rickard/rq-state-bug/OTP-13298' into maintRickard Green
* rickard/rq-state-bug/OTP-13298: Fix bug causing run-queue mask to become inconsistent
2016-02-18erts: Fix lock checker for process locksSverker Eriksson
Do lock order check *before* trying to seize lock... duh!
2016-02-16erts: Add BIF erts_internal:system_check/1Björn-Egil Dahlberg
This commit implements erts_internal:system_check(schedulers) with the intent of a basic responsiveness test check of the schedulers.
2016-02-08Merge branch 'sverk/hipe-line-table-bug/OTP-13282' into maintSverker Eriksson
* sverk/hipe-line-table-bug/OTP-13282: erts: Fix bug concerning line information for hipe modules
2016-02-08Merge branch 'sverk/proc-exiting-timer-race/OTP-13245' into maintSverker Eriksson
* sverk/proc-exiting-timer-race/OTP-13245: erts: Fix race between receive timeout and exit signal
2016-02-04Fix bug causing run-queue mask to become inconsistentRickard Green
2016-02-03Merge branch 'lukas/erts/enomem_no_abort/OTP-13292' into maintLukas Larsson
* lukas/erts/enomem_no_abort/OTP-13292: erts: When erts_alloc fails, the emulator no longer aborts
2016-02-02Merge branch 'rickard/monotonic-time-improvements/OTP-13222' into maintRickard Green
* rickard/monotonic-time-improvements/OTP-13222: Use nano second time unit in tracing
2016-02-02Use nano second time unit in tracingRickard Green
2016-02-02Merge branch 'margnus1/bs_unit_fix' into maintZandra
* margnus1/bs_unit_fix: hipe: Fix signed compares of unsigned sizes beam: Fix overflow bug in i_bs_add_jId hipe: Add tests for bad bit syntax float sizes Add a case testing the handling of guards involving binaries Add some more binary syntax construction tests hipe: Guard against enormous numbers in ranges hipe: Fix constructing huge binaries hipe: Fix binary constructions failing with badarith Add missing corner-case to bs_construct_SUITE hipe: Allow unsigned args in hipe_rtl_arith hipe: test unit size match in bs_put_binary_all hipe: test unit size match in bs_append Fix hipe_rtl_binary_construct:floorlog2/1 OTP-13272
2016-02-02Merge branch 'rickard/monotonic-time-improvements/OTP-13222' into maintRickard Green
* rickard/monotonic-time-improvements/OTP-13222: Introduce time management in native APIs Introduce time warp safe replacement for safe_fixed option Introduce time warp safe trace timestamp formats