aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator
AgeCommit message (Collapse)Author
2013-08-09Merge branch 'sverk/ptab-race' into maintSverker Eriksson
* sverk/ptab-race: erts: Fix race in ptab that can cause PID mix-ups OTP-11225
2013-08-08Merge branch 'lukas/smoketests/OTP-11221' into maintLukas Larsson
* lukas/smoketests/OTP-11221: Add smoke tests
2013-08-07erts: Fix race in ptab that can cause PID mix-upsSverker Eriksson
Since: R16B01 Symptom: A spawned process may get the same PID as an existing process. The new process will "steal" the PID and make the old process unreachable through the PID. The problem also applies to port identities but has only been seen for processes. Conditions: SMP emulator with at least two scheduler threads. Rapid spawning and termination of a large number of processes. A small number of free slots in the process table will also increase the risk for this bug. Workaround: Use command line options "+P legacy" and "+Q legacy" Cause: The race happens if a process terminates and gets stalled while releasing its process table slot. The stall has to be so long (due to OS preemptive scheduling most probably) for other schedluer threads to consume all other free slots for newly spawn processes. Fix: Write invalid-markers in the free-pid-table and do atomic exhange operations in retry-loops to make sure each thread gets a unique PID.
2013-08-05Add smoke testsLukas Larsson
Smoke tests are meant to verify that a build of erlang has been successfull.
2013-07-30Change default of erlang:halt/2 to the documentedPatrik Nyblom
Bug reported by Jose Valim on the erlang-bugs mailing list: erlang:halt(0,[]) does not flush as advertised in the documentation. Should be the same as erlang:halt(0,[{flush,true}]), but is in fact the same as erlang:halt(0,[{flush,false}]).
2013-07-15tests: Relax system_profile_SUITE scheduler testBjörn-Egil Dahlberg
2013-07-15tests: Refactor away ?line macroBjörn-Egil Dahlberg
2013-07-15tests: Relax receive_SUITE time constraintBjörn-Egil Dahlberg
2013-07-15Merge branch 'egil/erts/aggregate-system-traceability/OTP-11196' into maintBjörn-Egil Dahlberg
* egil/erts/aggregate-system-traceability/OTP-11196: Check for native code without loading module Fix erlang:system_info(compile_info) Fix system_information get_beam_name/0 Add beam dynamic libraries to system_information Add system_information testsuite Add system information aggregate Refactor away ?line macro in code_SUITE Fix tests for erts app-file Add erts app-file erts: Add cflags, ldflags and config.h into executable
2013-07-15Fix erlang:system_info(compile_info)Björn-Egil Dahlberg
Allocation needs to be in correct order.
2013-07-12Merge branch 'rickard/warning_fixes' into maintRickard Green
* rickard/warning_fixes: Fix variable ‘rp_had_locks’ set but not used warning Fix ‘ethr_native_rwlock_destroy’ defined but not used warning Fix 'no previous prototype' warning for dtrace functions
2013-07-12Merge branch 'rickard/test_case_fixes' into maintRickard Green
* rickard/test_case_fixes: Conditionally skip process_SUITE tests that consume large amount of memory
2013-07-11erts: Add cflags, ldflags and config.h into executableLukas Larsson
2013-07-11Fix variable ‘rp_had_locks’ set but not used warningRickard Green
2013-07-11Fix 'no previous prototype' warning for dtrace functionsRickard Green
2013-07-11Conditionally skip process_SUITE tests that consume large amount of memoryRickard Green
2013-07-11Merge branch 'jw/fix-float-middle-endian/OTP-11201' into maintFredrik Gustafsson
* jw/fix-float-middle-endian/OTP-11201: Fix binary construction on floating point middle-endian machines Fix binary matching on floating point middle-endian machines Fix erlang:phash2() on floating point middle-endian machines Fix external term format BIFs on floating point middle-endian machines
2013-07-10Merge branch 'rickard/info/OTP-11196' into maintRickard Green
* rickard/info/OTP-11196: Add test cases for native atomics and jump table Refuse to build SMP runtime by default without native atomics Make information about use of jump table available via system_info BIF Make ethread library information available via system_info BIF Make emulator arguments available via the system_info BIF
2013-07-10Add test cases for native atomics and jump tableRickard Green
2013-07-09Make information about use of jump table available via system_info BIFRickard Green
erlang:system_info(beam_jump_table)
2013-07-09Make ethread library information available via system_info BIFRickard Green
erlang:system_info(ethread_info)
2013-07-09Make emulator arguments available via the system_info BIFRickard Green
erlang:system_info(emu_args)
2013-06-20Merge branch 'sverk/crypto-remove-ec-resource' into maintSverker Eriksson
* sverk/crypto-remove-ec-resource: crypto: Supress some false positives from valgrind crypto: Refactor remove resource for EC_KEY crypto: Fix some compiler warnings
2013-06-20Merge branch 'sverk/aoffcbf' into maintSverker Eriksson
* sverk/aoffcbf: erts: Make aoffcbf default when migration is enabled erts: Add new allocator strategy aoffcbf OTP-11174
2013-06-19erts: Make aoffcbf default when migration is enabledSverker Eriksson
2013-06-19erts: Add new allocator strategy aoffcbfSverker Eriksson
with better performance than aoffcaobf as we don't have to rearrange the search tree when there are blocks of equal size.
2013-06-14erts: Fix memory leak in term_to_binary/2 with compressed optionSverker Eriksson
2013-06-14Fix binary construction on floating point middle-endian machinesJohannes Weißl
This complements 933e701 (OTP-10209). Without this patch the test cases "in_guard/1" and "coerce_to_float/1" in bs_construct_SUITE fail. The added lines in bs_construct_SUITE cover all branches that were not covered before (small and big numbers if BIT_OFFSET(erts_bin_offset) != 0).
2013-06-14Fix binary matching on floating point middle-endian machinesJohannes Weißl
This complements 933e701 (OTP-10209). Without this patch the test case "bs_match_misc_SUITE:t_float/1" fails. Simple error example: 1> <<_,_,_,_,_,_,_,_>> = <<1.25/float>>. <<63,244,0,0,0,0,0,0>> 2> <<1.25/float>> = <<63,244,0,0,0,0,0,0>>. ** exception error: no match of right hand side value <<63,244,0,0,0,0,0,0>> The additional test case is added because in a former version of this patch the ERTS_FP_ERROR_THOROUGH check for NaN/infinity was mistakenly applied on the still word-switched double.
2013-06-14Fix erlang:phash2() on floating point middle-endian machinesJohannes Weißl
This complements 933e701 (OTP-10209). Without this patch the test case "hash_SUITE:test_phash2/1" fails. Simple error example: 1> 77147068 = erlang:phash2(1.0). ** exception error: no match of right hand side value 50524433
2013-06-14Fix external term format BIFs on floating point middle-endian machinesJohannes Weißl
This complements 933e701 (OTP-10209). Simple error example: 1> <<131,70,63,240,0,0,0,0,0,0>> = term_to_binary(1.0, [{minor_version,1}]). ** exception error: no match of right hand side value <<131,70,0,0,0,0,63,240,0,0>> 2> 1.0 = binary_to_term(<<131,70,63,240,0,0,0,0,0,0>>). ** exception error: no match of right hand side value 5.299808824e-315 But roundtrip always works: 3> 1.0 = binary_to_term(term_to_binary(1.0, [{minor_version,1}])). 1.0
2013-06-12Update copyright yearsBjörn-Egil Dahlberg
2013-06-12crypto: Supress some false positives from valgrindSverker Eriksson
2013-06-12Merge branch 'rickard/+sfwi/OTP-11164' into maintRickard Green
* rickard/+sfwi/OTP-11164: erts: Add the +sfwi system flag
2013-06-11erts: Add the +sfwi system flagRickard Green
+sfwi Interval Set scheduler forced wakeup interval. All run queues will be scanned each Interval milliseconds. While there are sleeping schedulers in the system, one scheduler will be woken for each non-empty run queue found. An Interval of zero disables this feature, which also is the default. This feature has been introduced as a temporary workaround for lengthy executing native code, and native code that do not bump reductions properly in OTP. When these bugs have be fixed the +sfwi flag will be removed.
2013-06-11Merge branch 'pan/happi/yield_in_term_to_binary' into maintOTP_R16B01_RC1Patrik Nyblom
* pan/happi/yield_in_term_to_binary: Add testcase to stress extra_root term_to_binary: Remove debug code and set production trap levels Teach erl_gc:offset_rootset about extra_root Teach external.c to handle reallocs before compression Make all steps ofterm_to_binary work in chunks and yield Make term_to_binary yield (trap). OTP-11163
2013-06-11Add testcase to stress extra_rootPatrik Nyblom
2013-06-10term_to_binary: Remove debug code and set production trap levelsPatrik Nyblom
2013-06-10Merge branch 'rickard-sverker/carrier-migration/OTP-10279' into maintRickard Green
* rickard-sverker/carrier-migration/OTP-10279: erts: Fix warning erts: Fix management of redirected carrier to deallocate
2013-06-10Merge branch 'sverk/darwin-unlimited-select' into maintSverker Eriksson
* sverk/darwin-unlimited-select: erts: Fix dynamic select for darwin erts: Refactor unlimited select patch erts: Fix bug in unlimited fd_set patch Use _DARWIN_UNLIMITED_SELECT in erl_poll
2013-06-10Merge branch 'rickard/stale-driver-select/OTP-11084' into maintRickard Green
* rickard/stale-driver-select/OTP-11084: Fix bad fix of erts_stale_drv_select()
2013-06-10Fix bad fix of erts_stale_drv_select()Rickard Green
2013-06-10erts: Fix debug code in erts_ptab_test_next_id()Rickard Green
2013-06-10erts: Fix warningRickard Green
2013-06-10erts: Fix management of redirected carrier to deallocateRickard Green
2013-06-06Teach erl_gc:offset_rootset about extra_rootPatrik Nyblom
2013-06-05Teach external.c to handle reallocs before compressionPatrik Nyblom
2013-06-05Merge branch 'pan/unicode_error_wrong_offset' into maintPatrik Nyblom
* pan/unicode_error_wrong_offset: Fix faulty rest on error in unicode:characters_to_list OTP-11080
2013-06-05Merge branch 'pan/r16b01/system_monitor_long_schedule/OTP-11067' into maintPatrik Nyblom
* pan/r16b01/system_monitor_long_schedule/OTP-11067: Minor spelling correction Add system_monitor of long_schedule
2013-06-05Merge branch 'pan/win_now_jumps' into maintPatrik Nyblom
* pan/win_now_jumps: Enable use of GetTickCoun64 when available Intermediate code with lock on gettickcount() Tmp OTP-11146