aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator
AgeCommit message (Collapse)Author
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-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-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.
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 'lukas/erts/ttsl_eintr/OTP-12987' into maintRickard Green
* lukas/erts/ttsl_eintr/OTP-12987: erts: Make sure to deal with EINTR write failures
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-16erts: Make sure to deal with EINTR write failuresLukas Larsson
2015-09-10Merge branch 'sverk/inet-packet-ssl_tls-passive' into maintSverker Eriksson
* sverk/inet-packet-ssl_tls-passive: erts: Fix inet packet mode ssl_tls for passive mode
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
2015-09-09Add configure switch --disable-saved-compile-timeRickard Green
2015-09-07erts: Fix inet packet mode ssl_tls for passive modeSverker Eriksson
Caused stack corruption leading to VM crash on windows. {packet,ssl_tls} is undocumented by the way.
2015-09-02Merge branch 'maint' into sverk/trace-process_dump-matchstateSverker Eriksson
Conflicts: erts/emulator/beam/erl_printf_term.c erts/emulator/beam/erl_term.c erts/emulator/beam/utils.c
2015-09-01erts: Add testcase for tracing whith 'process_dump'Sverker Eriksson
of a process with a matchstate on the stack.
2015-09-01erts: Fix bug when tracing with 'process_dump'Sverker Eriksson
If the process stack contained a match state the print function would crash the vm as it was not recognized by tag_val_def(). Add new MATCHSTATE_DEF returned by tag_val_def(). All other callers either ignore it or has a default clause to handle invalid terms.