aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam
AgeCommit message (Collapse)Author
2019-07-02Merge branch 'poroh/erts/sched-stuck-fix/OTP-15941' into maint-22Erlang/OTP
* poroh/erts/sched-stuck-fix/OTP-15941: Infinite cycle fixed on try to change run queue (if it has already changed concurrently)
2019-07-02Merge branch 'sverker/system_info-procs-bug/ERL-979/OTP-15909' into maint-22Erlang/OTP
* sverker/system_info-procs-bug/ERL-979/OTP-15909: Fix fatal bug in erts_proc_sig_signal_size
2019-07-02Merge branch 'john/erts/lists_subtract_fixes/OTP-15938/OTP-15939' into maint-22Erlang/OTP
* john/erts/lists_subtract_fixes/OTP-15938/OTP-15939: erts: Fix integer overflow in loader erts: Fix integer overflow in list subtraction
2019-07-01erts: Fix integer overflow in loaderJohn Högberg
qsort expects the comparison function to return an int; returning an `Sint` may yield nonsensical results.
2019-07-01erts: Fix integer overflow in list subtractionJohn Högberg
CMP_TERM returned an `Sint`, which overflowed the `int` used in erl_rbtree for storing the comparison, causing list subtraction to behave strangely.
2019-06-28Infinite cycle fixed on try to change run queue (if it has already changed ↵Dmitry Poroh
concurrently)
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-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 '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-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-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-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.
2019-05-29Merge branch 'bjorn/erts/fix-wrong-class/ERIERL-367/OTP-15834' into maint-22Erlang/OTP
* bjorn/erts/fix-wrong-class/ERIERL-367/OTP-15834: Fix sticky class in exception
2019-05-23Fix sticky class in exceptionBjörn Gustavsson
When catching an exception re-throwing with a changed class, the class could be changed to the original class if the exception got caught and rethrown in (for example) an after block: sticky_class() -> try try throw(reason) catch throw:Reason:Stack -> erlang:raise(error, Reason, Stack) end after ok end.
2019-05-13erts: Fix buffer overflow in xxx_to_existing_atomJohn Högberg
2019-05-10Prepare releaseErlang/OTP
2019-05-10Eliminate process yield after each call to length/1Björn Gustavsson
After calculating the length of a list, length/1 would accidentally bump all remaining reductions, forcing the process to yield. Correct the calculation.
2019-05-06Merge branch 'sverker/process_info-reductions-fix/OTP-15793' into maint-21Erlang/OTP
* sverker/process_info-reductions-fix/OTP-15793: erts: Force process_info(reductions) as signal erts: Fix another bug in process_info(reductions)
2019-05-06Merge branch 'maint'Sverker Eriksson
2019-05-06Merge branch 'sverker/process_info-reductions-fix/OTP-15793' into maintSverker Eriksson
* sverker/process_info-reductions-fix/OTP-15793: erts: Force process_info(reductions) as signal erts: Fix another bug in process_info(reductions)
2019-05-03erts: Force process_info(reductions) as signalSverker Eriksson
Not 100% sure this is needed to get correct reductions as the direct query is not done if process is RUNNING anyway.
2019-05-03Merge branch 'lukas/erts/distr-frag-fixes'Lukas Larsson
* lukas/erts/distr-frag-fixes: erts: Add documentation for distribution fragments
2019-05-02Merge branch 'sverker/tw-assert'Sverker Eriksson
* sverker/tw-assert: erts: Fix bug in timer wheel at cancel during bump yield erts: Tidy up some harmless code typos
2019-05-02erts: Add documentation for distribution fragmentsLukas Larsson
2019-05-02Merge branch 'lukas/erts/distr-frag-fixes'Lukas Larsson
* lukas/erts/distr-frag-fixes: Update run-dialyzer script to be more generic and aggressive erts: Fix memory leak for down/exit message
2019-04-30Merge branch 'john/erts/alloc-header-packing-win64'John Högberg
* john/erts/alloc-header-packing-win64: erts_alloc: Fix header packing on Win64
2019-04-30erts: Fix memory leak for down/exit messageLukas Larsson
When a fragmented down/exit is sent to a non-existing process the message would just be dropped without being deallocated.
2019-04-29erts: Fix bug in timer wheel at cancel during bump yieldSverker Eriksson
Symptom: Failed debug assert in find_next_timeout ERTS_TW_ASSERT(tiw->yield_slot == ERTS_TW_SLOT_INACTIVE); Problem: If remove_timer() was called in between yielding erts_bump_timers() tiw->true_next_timeout_time could be set to 0 leading to find_next_timeout() being called before all bumping is done. Solution: Don't clear tiw->true_next_timeout_time in remove_timer() if tiw->yield_slot is active. Does not seem this bug could cause other more harmful symptoms, but not sure.
2019-04-29erts: Tidy up some harmless code typosSverker Eriksson
2019-04-29Merge branch 'rickard/dist-q-sz-fix'Rickard Green
* rickard/dist-q-sz-fix: Fix distribution queue size adjustment
2019-04-29erts_alloc: Fix header packing on Win64John Högberg
2019-04-24erts: Fix another bug in process_info(reductions)Sverker Eriksson
to disregard consumed virtual reductions which are not aggregated into p->reds and if included may cause reduction count go backwards.
2019-04-24erts: Simplify erts_get_port_namesSverker Eriksson
No need to pre-allocate a buffer before name length calculation.
2019-04-24Fix distribution queue size adjustmentRickard Green
2019-04-24Revert "Prepare release"Rickard Green
This reverts commit 425889ba69b69a9b6fb14bfbef121d51b78e853a.
2019-04-24erts_alloc: Fix incorrect header word packingJohn Högberg
2019-04-23Prepare releaseErlang/OTP
2019-04-18Merge branch 'kjell/emulator/persistent_term_yield/OTP-15615'Kjell Winblad
* kjell/emulator/persistent_term_yield/OTP-15615: Make persistent_term:put/2 and persistent_term:erase/1 yield
2019-04-18Merge branch 'rickard/dist-system-limit/OTP-15708'Rickard Green
* rickard/dist-system-limit/OTP-15708: Fail when we cannot encode term in binary
2019-04-18Make persistent_term:put/2 and persistent_term:erase/1 yieldKjell Winblad
Prior to this commit, the functions put/2 and erase/1 in the persistent_term module did not yield even if the persistent term table was large (the persistent term table is copied every time put/2 or erase/1 is called). Furthermore, a call to put/2 or erase/1 did only consume a single reduction. This commit fixes these problems.
2019-04-18Merge branch 'lukas/OTP-22-rc2/misc-fixes/OTP-15773'Lukas Larsson
* lukas/OTP-22-rc2/misc-fixes/OTP-15773: erts: Yield correctly when iterating over distr exit messages erts: Fix cerl -rr to use correct etp file erts: Fix etp-process-info to print exiting and free processes tools: Adjust instrument abort tc to better trigger faults erts: Fix cleanup of message factory undo erts: Make dump_SUITE:free_dump not dump via rpc erts: Add extra debugging to dist frag testcases erts: Run smaller dist frag test to 32 bit machines erl_docgen: Remove accidentally merged debug printout erts: Fix z_SUITE to always look for cerl in ERL_TOP otp: make top Makefile app target respect TYPE variable vxworks: Make vxworks configure use environment CFLAGS erts: Make erts_free debug failure easier to diagnose erts: Fix gcc warning in to_erl
2019-04-18erts: Yield correctly when iterating over distr exit messagesLukas Larsson
Before this fix the process would continue to process more distributed down or exit messages until it ran out of reductions instead of being suspended immediately.
2019-04-18erts: Fix cleanup of message factory undoLukas Larsson
2019-04-18Fix broken ETS test caseKjell Winblad
This commit fixes an ETS test case that tests the decentralized memory counter in tables of type ordered_set with the write_concurrency option turned on. The test case assumed that the memory consumption of the table would only grow monotonically when terms are inserted. However, this was not the case when the emulator was compiled in debug mode as random splits and joins of CA tree nodes could happen. This commit fixes the test case by disabling random splits and joins in the tested table.
2019-04-15Merge branch 'bjorn/cuddle-with-tests'Björn Gustavsson
* bjorn/cuddle-with-tests: crash dump: Fix printing of "OldBinVHeap unused" crash dump: Include correct IP for a garbing process fun_SUITE: Make refc/1 test more reliable Remove redundant rule from Emakefile Turn off more optimizations for no_opt modules test_server_node: Bump compiler compatibility version to OTP 20 erts_test_utils: Bump compiler compatibility version to OTP 20 distribution_SUITE: Remove irrelevant test atom_roundtrip_r16b bs_construct_SUITE: Rename bs_add_overflow/1 to bs_append_overflow/1 bs_construct_SUITE: Remove troublesome test huge_binary/1 bs_construct_SUITE: Remove incorrect purpose line