aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator
AgeCommit message (Collapse)Author
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).
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-11Merge branch 'sverk/dist-ctrl-msg-overflow' into maintSverker Eriksson
* sverk/dist-ctrl-msg-overflow: erts: Fix faulty cleanup when receiving broken dist msg
2015-12-11erts: Fix faulty cleanup when receiving broken dist msgSverker Eriksson
Bug introduced in ce8279d6a48d41f9. Thank you valgrind.
2015-12-09Merge branch 'sverk/dist-ctrl-msg-overflow' into maintSverker Eriksson
OTP-13146 (more stuff) * sverk/dist-ctrl-msg-overflow: erts: Tweak hashmap heap size estimation erts: Fix bug for remote control message containing fat maps erts: Add test for remote exit signal with fat map erts: Fix bug in heap_factory_undo for FACTORY_HEAP_FRAGS mode
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-07erts: Add test for remote exit signal with fat mapSverker Eriksson
2015-12-04Merge branch 'maint-17' into maintHenrik Nord
Conflicts: OTP_VERSION erts/doc/src/notes.xml erts/vsn.mk lib/kernel/doc/src/notes.xml lib/kernel/src/kernel.appup.src lib/kernel/vsn.mk lib/ssl/doc/src/notes.xml lib/ssl/src/ssl.appup.src lib/ssl/src/ssl_cipher.erl lib/ssl/vsn.mk otp_versions.table
2015-12-04Merge branch 'mikpe/hipe_x86_signal-musl-support' into maintZandra
* mikpe/hipe_x86_signal-musl-support: hipe_x86_signal: add support for musl libc OTP-13159
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-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: Reduce alloc_SUITE:rbtree runtime for valgrindSverker Eriksson
2015-11-26erts: Remove double free in efile_drvSverker Eriksson
That double free is probably very seldom invoked as the port is already gone leading to free_data being called instead of file_async_ready.
2015-11-26erts: Improve alloc_SUITE:migration testSverker Eriksson
In the quest to improve code coverage in cpool_fetch
2015-11-26erts: Pass free mem and build type to alloc_SUITE testsSverker Eriksson
2015-11-26erts: Fix snprintf in alloc_SUITE for windowsSverker Eriksson
2015-11-26erts: Workaround for strange crash on win64 in alloc_SUITE test codeSverker Eriksson
For some reason setjmp() crash when having jmp_buf heap allocated but works when stack allocated.
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: More testcases for map binary_to_term/1Björn-Egil Dahlberg
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-19Fix error propagate from setoptsRaimo Niskanen
2015-11-16Merge branch 'sverk/nif_SUITE-win64-long-bug' into maintSverker Eriksson
* sverk/nif_SUITE-win64-long-bug: erts: Fix nif_SUITE for win64
2015-11-16Merge branch 'zenhack/fix-erroneous-__uint32_t' into maintHenrik Nord
* zenhack/fix-erroneous-__uint32_t: Fix erroneous use of __uint32_t OTP-13105
2015-11-14hipe_x86_signal: add support for musl libcMikael Pettersson
- change #if tests at default Solaris case to explicitly check for __sun__ - add new default case, instantiate it for musl
2015-11-12erts: Fix nif_SUITE for win64Sverker Eriksson
where type long is only 32-bit and can not hold a pointer unless your lucky.
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-11-02Merge branch 'lukas/erts/process_mem_test_fix/OTP-13077' into maintLukas Larsson
* lukas/erts/process_mem_test_fix/OTP-13077: erts: Don't run processes tests on lcnt with little memory
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-15Fix erroneous use of __uint32_tIan Denhardt
The presence of this symbol is libc-specific. In particular, it is absent from musl. The correct solution is to use uint32_t.
2015-10-13Merge branch 'kostis/hipe-native-bif-warning' into maintHenrik Nord
* kostis/hipe-native-bif-warning: Take out unused code that results in a gcc warning OTP-13041
2015-10-12erts: Don't run processes tests on lcnt with little memoryLukas Larsson
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.