aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam
AgeCommit message (Collapse)Author
2016-01-28erts: Fix bug concerning line information for hipe modulesSverker Eriksson
Line table was left uninitialized for hipe (stub) modules causing process_info(OtherPid, current_location) to crash.
2016-01-27erts: When erts_alloc fails, the emulator no longer abortsLukas Larsson
2016-01-22Merge branch 'rickard/test-fix' into maintRickard Green
* rickard/test-fix: Fix HL timer hard debug implementation Fix stack alignment problem in ethread test on arm Skip time_SUITE:timestamp on timewarp test
2016-01-21Introduce time management in native APIsRickard Green
2016-01-20Introduce time warp safe replacement for safe_fixed optionRickard Green
The new time warp safe option is safe_fixed_monotonic_time which gives erlang:monotonic_time(). The safe_fixed option was also slightly changed. It now gives erlang:timestamp() instead of erlang:now(). This has however not been documented, so it is considered a compatible change. The above effects both ets, and dets. This commit also include the bugfix OTP-13239 for dets:info(Tab, safe_fixed). The timestamp in the result returned by dets:info(Tab, safe_fixed) was unintentionally broken as a result of the time API rewrites in OTP 18.0.
2016-01-20Introduce time warp safe trace timestamp formatsRickard Green
New timestamp options for trace, sequential trace, and system profile: - monotonic_timestamp - strict_monotonic_timestamp
2016-01-18Fix dirty scheduler check in handle_aux_workSteve Vinoski
2016-01-18erts: Fix race between receive timeout and exit signalSverker Eriksson
Must re-read 'state' after seizing proc locks as other thread may have set EXITING.
2016-01-14Merge branch 'vinoski/dirty-sched-no-aux-work/OTP-13236' into maintRickard Green
* vinoski/dirty-sched-no-aux-work/OTP-13236: Do not allow aux work on dirty schedulers
2015-12-30Merge branch 'rickard/rq-len/OTP-13201' into maintRickard Green
* rickard/rq-len/OTP-13201: Light weight statistics of run queue lengths
2015-12-30Light weight statistics of run queue lengthsRickard Green
- statistics(total_run_queue_lengths) - statistics(run_queue_lengths) - statistics(total_active_tasks) - statistics(active_tasks) Conflicts: erts/emulator/beam/erl_process.c
2015-12-30Fix HL timer hard debug implementationRickard Green
2015-12-23Use monotonic time for call_time traceRickard Green
2015-12-21Do not allow aux work on dirty schedulersSteve Vinoski
The nature of aux work is such that dirty schedulers should not attempt to perform it. Modify the code to ensure that dirty schedulers avoid aux work. Also fix an incorrect assumption about the size of a Uint in the ErtsDirtySchedId type.
2015-12-11Merge branch 'sverk/setnode-rename-bug/OTP-13076' into maintSverker Eriksson
* sverk/setnode-rename-bug/OTP-13076: erts: Fix correct node name for DTRACE
2015-12-11erts: Fix correct node name for DTRACESverker Eriksson
broken by 949de78331b9c4ecb9.
2015-12-11erts: Fix faulty cleanup when receiving broken dist msgSverker Eriksson
Bug introduced in ce8279d6a48d41f9. Thank you valgrind.
2015-12-07erts: Tweak hashmap heap size estimationSverker Eriksson
1. Change order between mul and div to not lose too much in integer divisions. 2. Fix estimation in DEBUG to really be an *under* estimation.
2015-12-07erts: Fix bug for remote control message containing fat mapsSverker Eriksson
that could cause the static factory to overflow Fix: Introduce a new factory mode FACTORY_TMP
2015-12-04Remove ERTS_PRINT_INVALID from erts_print()Rickard Green
ERTS_PRINT_INVALID prevented file descriptor 0 to be used which could cause an empty crash dump.
2015-12-03erts: Fix bug in heap_factory_undo for FACTORY_HEAP_FRAGS modeSverker Eriksson
Make sure a heap fragment is not deallocated before all off_heap terms have been cleared. The fix assumes/asserts that the off_heap-lists of all additional heap fragments are empty. I think this bug has been harmless as hashmap nodes, which is only ones (?) that can cause a factory to produce more heap, are not linked in off_heap-list.
2015-12-02beam: Fix overflow bug in i_bs_add_jIdMagnus Lång
The test whether the result would fit in a smallnum could overflow into a negative number that would fit a smallnum. A test that reproduces the issue was added to bs_construct_SUITE.
2015-11-30Merge branch 'sverk/rare-gc-map-overflow/OTP-13146' into maintSverker Eriksson
* sverk/rare-gc-map-overflow/OTP-13146: erts: Fix rare case of faulty heap fragment deallocation
2015-11-30Merge branch 'rickard/erts-print/OTP-13150' into maintRickard Green
* rickard/erts-print/OTP-13150: Remove ERTS_PRINT_INVALID from erts_print()
2015-11-30Remove ERTS_PRINT_INVALID from erts_print()Rickard Green
ERTS_PRINT_INVALID prevented file descriptor 0 to be used which could cause an empty crash dump.
2015-11-27erts: Fix rare case of faulty heap fragment deallocationSverker Eriksson
after major GC. Can only be caused by distributed messages containing large maps. Bad map hashing will increase the risk.
2015-11-27Merge branch 'sverk/cpool_fetch-dc_list-fix' into maintSverker Eriksson
OTP-13147 * sverk/cpool_fetch-dc_list-fix: erts: Reduce alloc_SUITE:rbtree runtime for valgrind erts: Remove double free in efile_drv erts: Improve alloc_SUITE:migration test erts: Pass free mem and build type to alloc_SUITE tests erts: Fix snprintf in alloc_SUITE for windows erts: Workaround for strange crash on win64 in alloc_SUITE test code erts: Refactor alloc_SUITE to use NIFs instead of drivers erts: Add enif_getenv erts: Make key argument constant for erl_drv_{get|put}env erts: Add alloc_SUITE:migration erts: Add TEST allocator erts: Fix confusion of callbacks destroying_mbc() vs remove_mbc() erts: Fix resurrection of carriers from dc_list
2015-11-26Merge branch 'sverk/setnode-rename-bug/OTP-13076' into maintSverker Eriksson
* sverk/setnode-rename-bug/OTP-13076: erts: Fix bug in setnode/2 erts: Remove ERTS_PSD_DIST_ENTRY erts: Remove faulty ASSERT in erts_proc_*_refc
2015-11-26erts: Improve alloc_SUITE:migration testSverker Eriksson
In the quest to improve code coverage in cpool_fetch
2015-11-26erts: Refactor alloc_SUITE to use NIFs instead of driversSverker Eriksson
2015-11-26erts: Add enif_getenvSverker Eriksson
to read OS environment variables in a safe and portable way.
2015-11-23Merge branch 'egil/18/fix-maps-binary_to_term/OTP-13125' into maintBjörn-Egil Dahlberg
* egil/18/fix-maps-binary_to_term/OTP-13125: erts: More testcases for map binary_to_term/1 erts: Fix maps decode in erlang:binary_to_term/1
2015-11-20erts: Fix maps decode in erlang:binary_to_term/1Björn-Egil Dahlberg
Decoding a term with a large (HAMT) map in an small (FLAT) map could cause a critical error if the external format was not produced by beam.
2015-11-10erts: Make key argument constant for erl_drv_{get|put}envSverker Eriksson
This should be a harmless and compatible API change.
2015-11-10erts: Add alloc_SUITE:migrationSverker Eriksson
2015-11-10erts: Add TEST allocatorSverker Eriksson
2015-11-10erts: Fix bug in setnode/2Sverker Eriksson
that could lead strange things to happen when renaming a node with a name that already exist in node and dist tables. Problem: erts_set_this_node() is a bit brutal and does not handle the case when an old remote node name is reused as the new local node name. Solution: Treat erts_this_node and erts_this_dist_entry as all the others with correct reference counting.
2015-11-02Merge branch 'lukas/erts/win32_bool_fix/OTP-13079' into maintLukas Larsson
* lukas/erts/win32_bool_fix/OTP-13079: erts: bool is a reserved word, use boolean instead
2015-11-02erts: Remove ERTS_PSD_DIST_ENTRYSverker Eriksson
Not needed as it is always set to erts_this_dist_entry (on net_kernel).
2015-11-02erts: Remove faulty ASSERT in erts_proc_*_refcSverker Eriksson
There is no guarantee that the ptab-slot in not reused when we finally deallocates the process struct.
2015-10-27Merge branch 'lrascao/fix/build_fail_on_enabled_dist_debug' into maintHenrik Nord
* lrascao/fix/build_fail_on_enabled_dist_debug: Fix build fail when enabling distribution debug messages
2015-10-26erts: Add {line_delimiter, byte()} option to inet:setopts/2Serge Aleynikov
A new {line_delimiter, byte()} option allows line-oriented TCP-based protocols to use a custom line delimiting character. It is to be used in conjunction with {packet, line}. This option also works with erlang:decode_packet/3 when its first argument is 'line'.
2015-10-05Fix build fail when enabling distribution debug messagesLuis Rascao
2015-10-01erts: Fix confusion of callbacks destroying_mbc() vs remove_mbc()Sverker Eriksson
Problem #1 Goodfit was crippled by the fact that destroying_mbc() was called _before_ the carriers was unlinked from mbc_list. Problem #2 destroying_mbc() was called for carriers that later could be resurrected from dc_list without a matching call to creating_mbc(). This was mostly a practical problem for the new test case alloc_SUITE:migration that use the callbacks to create/destroy a mutex. Solution: destroying_mbc() is now only called just before a carrier is destroyed (deallocated or put in mseg cache). remove_mbc() is called both (like before) when inserted into cpool but now also when last block is freed and mbc is scheduled for destruction but may later be resurrected from dc_list.
2015-10-01erts: Fix resurrection of carriers from dc_listSverker Eriksson
Problem #1: Seems the dc_list check did end up as dead code by mistake. Solution: goto check_dc_list Problem #2: crr->cpool.max_size was set to zero for all carriers in dc_list, which meant no carriers were ever resurrected by cpool_fetch. Solution: Do not use callback 'largest_fblk_in_mbc' to set max_size as it will always return 0 (due to problem #3). Problem #3: Resurrected carriers were broken as their one free block was not linked. Solution: Link free block when fetching carrier from dc_list.
2015-09-28erts: Remove assertion that ptab is emptyLukas Larsson
Another process may already have been placed in this slot since the free och the process struct can be scheduled for later.
2015-09-17Merge branch 'goertzenator/enif_make_pid-unused_param' into maintHenrik Nord
* goertzenator/enif_make_pid-unused_param: fix unused parameter warning in enif_make_pid OTP-12989
2015-09-17Merge branch 'mikpe/erts-binary_to_integer-fix' into maintHenrik Nord
* mikpe/erts-binary_to_integer-fix: erts: fix binary_to_integer boundary case OTP-12988
2015-09-09Merge branch 'rickard/disable-saved-compile-time/OTP-12971' into maintRickard Green
* rickard/disable-saved-compile-time/OTP-12971: Add configure switch --disable-saved-compile-time Conflicts: HOWTO/INSTALL.md
2015-09-09Merge branch 'rickard/event-tmo/OTP-12954' into maintRickard Green
* rickard/event-tmo/OTP-12954: Fix ethread events with timeout