aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2016-08-29Merge branch 'rickard/fun-purge-bug/OTP-13809' and ↵Rickard Green
'rickard/new-purge-strategy/OTP-13833' into maint * rickard/fun-purge-bug/OTP-13809: Fix purge of code Reclaim literal area after purge has completed Separate literal area from code Conflicts: erts/doc/src/erlang.xml erts/emulator/beam/beam_bif_load.c erts/emulator/beam/erl_init.c erts/preloaded/ebin/init.beam
2016-08-29Fix purge of codeRickard Green
Ensure that we cannot get any dangling pointers into code that has been purged. This is done by a two phase purge. At first phase all fun entries pointing into the code to purge are marked for purge. All processes trying to call these funs will be suspended and by this we avoid getting new direct references into the code. When all processes has been checked, these processes are resumed. The new purge strategy now also completely ignore the existence of indirect references to the code (funs). If such exist, they will cause bad fun exceptions to the caller, but will not prevent a soft purge or cause a kill of a process having such live references during a hard purge. This since it is impossible to give any guarantees that no processes in the system have such indirect references. Even when the system is completely clean from such references, new ones can appear via distribution and/or disk.
2016-08-29Merge branch bugfix/ets-docs-typo/PR-1150Sverker Eriksson
of https://github.com/parndt/otp into maint * 'bugfix/ets-docs-typo' of https://github.com/parndt/otp: Fix typo: specificationc -> specification
2016-08-27Fix typo: specificationc -> specificationPhilip Arndt
2016-08-26Reclaim literal area after purge has completedRickard Green
2016-08-26Merge branch 'sverker/hipe-backend-bugs/PR-1146' into maintSverker Eriksson
2016-08-25Merge branch 'peppe/debugger_crash/ERL-191/OTP-13756' into maintPeter Andersson
* peppe/debugger_crash/ERL-191/OTP-13756: Make sure exit in non-interpreted code doesn't crash the debugger OTP-13756
2016-08-25Merge branch 'siri/reltool/fix-dialyzer-warnings' into maintSiri Hansen
* siri/reltool/fix-dialyzer-warnings: [reltool] Fix dialyzer warnings introduced by OTP-11993
2016-08-24[reltool] Fix dialyzer warnings introduced by OTP-11993Siri Hansen
2016-08-24Merge branch 'raimo/gen_statem-callback_mode/OTP-13752' into maintRaimo Niskanen
* raimo/gen_statem-callback_mode/OTP-13752: Include trap_exit in server skeletons Improve sys debug Handle exceptions in init/1 and callback_mode/0 Clarify error values Doc fixes Rewrite SSH for gen_statem M:callback_mode/0 Rewrite SSL for gen_statem M:callback_mode/0 Rewrite Tools for gen_statem M:callback_mode/0 Rewrite gen_statem docs for M:callback_mode/0 Rewrite gen_statem TCs for M:callback_mode/0 Rewrite gen_statem for M:callback_mode/0
2016-08-22hipe: Fix amd64 SSE2 encoding crashMagnus Lång
Register allocation could transform something like fmove u32, d99 to fmove $rdx, 0x20($rsp) which is an invalid instruction.
2016-08-22hipe: Fix tailcall stackarg clobber bugMagnus Lång
Since the link register/return address is restored before stack arguments are stored to the frame, we must not use it to store a stack argument. We do that by adding it to the registers clobbered by pseudo_tailcall_prepare.
2016-08-22hipe_arm: Fix translation of shift by 0Magnus Lång
The problem was caused by shift-by-immediate-zero, which wraps to immediate-32 with some shiftops. TODO: Someplace should be modified to crash when these are generated so debugging further instances of this gets easier in the future.
2016-08-22hipe_ppc: Fix PPC64 bug encoding large immediatesMagnus Lång
2016-08-22hipe_ppc: Fix incorrect encoding of shift by 0Magnus Lång
2016-08-22hipe_x86: Fix illegal inst from peephole optMagnus Lång
2016-08-22Merge branch 'gomoripeti/syntax_tools/merl-transform/PR-1123/OTP-13755' into ↵Björn Gustavsson
maint * gomoripeti/syntax_tools/merl-transform/PR-1123/OTP-13755: Fix infinite loop in merl_transform
2016-08-22Merge branch 'lukas/erts/port_monitor_mem_leak/OTP-13818' into maintLukas Larsson
* lukas/erts/port_monitor_mem_leak/OTP-13818: erts: Fix port monitor memory leak
2016-08-22Merge remote-tracking branch 'github/pr/1144' into maintIngela Anderton Andin
2016-08-22Merge branch 'ingela/ssl/ssl_npn_hello_SUITE_precondition' into maintIngela Anderton Andin
* ingela/ssl/ssl_npn_hello_SUITE_precondition: ssl: Check precondition for ssl_npn_hello_SUITE
2016-08-21Update httpd.xmlLinus.yuan
corrected some typo
2016-08-19Merge branch 'sverker/net_kernel-setopts/OTP-13564' into maintSverker Eriksson
2016-08-19Merge branch 'dgud/wx/broken-links' into maintDan Gudmundsson
* dgud/wx/broken-links: wx: Add missing specs
2016-08-19Merge branch 'dgud/wx/increase_wx_stacksize' into maintDan Gudmundsson
* dgud/wx/increase_wx_stacksize: Request a larger stacksize for wx thread
2016-08-18ssl: Check precondition for ssl_npn_hello_SUITEIngela Anderton Andin
2016-08-18Include trap_exit in server skeletonsRaimo Niskanen
2016-08-18Improve sys debugRaimo Niskanen
2016-08-17Handle exceptions in init/1 and callback_mode/0Raimo Niskanen
2016-08-17Merge branch 'maint-19' into maintLukas Larsson
* maint-19: Updated OTP version Prepare release erts: Make sure to flush potential exit message
2016-08-17Clarify error valuesRaimo Niskanen
2016-08-16Updated OTP versionOTP-19.0.5Erlang/OTP
2016-08-16Prepare releaseErlang/OTP
2016-08-16Merge branch 'lukas/kernel/os_cmd_fix_exit_message_leak/OTP-13813' into maint-19Erlang/OTP
* lukas/kernel/os_cmd_fix_exit_message_leak/OTP-13813: erts: Make sure to flush potential exit message
2016-08-16erts: Make sure to flush potential exit messageLukas Larsson
2016-08-15Update bootstrapSverker Eriksson
2016-08-15kernel: Document net_kernel:getopts and setoptsSverker Eriksson
2016-08-15kernel: Add erl_distribution_SUITE:setoptsSverker Eriksson
to test net_kernel:setopts and getopts.
2016-08-15kernel: Accept and convert old hs_data recordSverker Eriksson
2016-08-15kernel: Add net_kernel:setopts/2 and getopts/2Sverker Eriksson
2016-08-12erts: Fix port monitor memory leakLukas Larsson
2016-08-12Merge branch 'maint-18' into maintRickard Green
* maint-18: Updated OTP version Prepare release Conflicts: OTP_VERSION erts/doc/src/notes.xml erts/vsn.mk otp_versions.table
2016-08-12Merge branch 'maint-19' into maintRickard Green
* maint-19: Updated OTP version Prepare release Avoid segfault when printing slogan after crashdumping Fix race causing lost wakeup on receive-after timeout
2016-08-12Merge branch 'bjorn/compiler/ambiguous_catch_try_state/ERL-209/OTP-13804' ↵Björn Gustavsson
into maint * bjorn/compiler/ambiguous_catch_try_state/ERL-209/OTP-13804: [ERL-209] Fix ambiguous_catch_try_state inconsistency error
2016-08-12Merge branch 'bjorn/asn1/support-parallel-build/OTP-13624' into maintBjörn Gustavsson
* bjorn/asn1/support-parallel-build/OTP-13624: asn1_test_lib: Compile ASN.1 modules in parallel Support 'make -j' when compiling ASN.1 modules
2016-08-12asn1_test_lib: Compile ASN.1 modules in parallelBjörn Gustavsson
Test that the changes in the previous commit allows us to compile ASN.1 modules in parallel.
2016-08-12Support 'make -j' when compiling ASN.1 modulesBjörn Gustavsson
When attempting to build multiple ASN.1 modules in parallel (e.g. by running 'make -j'), the ASN.1 compiler could crash because the names of the .asn1db files clashed. For example, if A.asn1 and B.asn1 both import from C.asn1, the compiler would write a C.asn1db file when compiling A.asn1 and when compiling B.asn1. We can avoid this problem if the compiler only writes the module's own .asn1db file. That is, when compiling A.asn1, the compiler would only write A.asn1db, not C.asn1db. Also, make sure that we make the write atomic by first writing to a temporary file that is then renamed.
2016-08-12Merge branch 'lukas/erts/tracing/fix_sparc_align_issue/OTP-13803' into maintLukas Larsson
* lukas/erts/tracing/fix_sparc_align_issue/OTP-13803: erts: Align ErtsThrPrgrLaterOp when free'ing tracer
2016-08-12erts: Align ErtsThrPrgrLaterOp when free'ing tracerLukas Larsson
On Sparc all structs with a double word element in are assumed to be allocated on a two word boundary. So we have to make sure that the ErtsThrPrgrLaterOp * points to 8 / 16 byte aligned memory. As it only costs one word I've done it on all architectures in case some unknown other arch also needs this.
2016-08-12Merge branch 'lukas/erts/fix_init_stop_code_load_race/OTP-13802' into maintLukas Larsson
* lukas/erts/fix_init_stop_code_load_race/OTP-13802: erts/kernel: Fix code loading deadlock during init:stop
2016-08-12erts/kernel: Fix code loading deadlock during init:stopLukas Larsson
When init:stop is called it walks the application hierarchy and terminates each process. Some of these processes may do something while terminating and sometimes that something needs to load some new code in order to work. When this happens the code_server could just be in the process of terminating or the erl_prim_loader could be active. In both these cases the request to load the new code would cause a deadlock in the termination of the system. This commit fixes this by init rejecting attempts to load new code when init:stop has been called and fixing a termination race in the code_server. This however means that the process that tried to do something when told to terminate (for instance logging that it is terminating) will crash instead of loading the code.