aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2018-09-18Merge 'sverker/erts/fix-aborted-pending-connection-race/OTP-15296'Sverker Eriksson
2018-09-18erts: Refactor port dist_entry & conn_id into PRTSDSverker Eriksson
spelled out as "port specific data".
2018-09-18Remove ugly fail case macrosSverker Eriksson
2018-09-18Consolidate distribution entry state transitionsSverker Eriksson
* Make connection_id part of the distribution handle as {ConnId, DistEntry} in order for BIFs to verify correct connection. * Make distribution handle opaque to net_kernel. * Remove some unsafe lockless reads of DistEntry.flags * Change state ERTS_DE_STATE_EXITING to be more of an internal state that prevents erts from enqueue, encode or schedule new data to be sent. Otherwise it should behave like ERTS_DE_STATE_CONNECTED.
2018-09-11erts: Fix bug in undocumented system_flag(scheduling_statistics)Sverker Eriksson
Uses port specific data out of bounds.
2018-09-11erts: Fix "Prevent inconsistent node lists" fixSverker Eriksson
done in a31216200bdee2c04b3fb3ae5e26607674715c8a that could cause a new pending connection to be incorrectly aborted.
2018-09-10Merge pull request #1942 from velimir0xff/fix-erlang-mode-alignDan Gudmundsson
erlang-mode: fix void variable align-rules-list error
2018-09-10Merge branch 'raimo/improve-doc-indexing/ERL-666' into maintRaimo Niskanen
* raimo/improve-doc-indexing/ERL-666: Correct doc markers Improve indexing of cref docs
2018-09-10Merge branch 'siri/supervisor/warn-shutdown-race/ERL-724' into maintSiri Hansen
* siri/supervisor/warn-shutdown-race/ERL-724: [supervisor] Add warning about race condition
2018-09-10Merge branch 'siri/cuddle' into maintSiri Hansen
* siri/cuddle: [sasl] Flush logger handlers to file before terminating node
2018-09-07Correct doc markersRaimo Niskanen
2018-09-07Improve indexing of cref docsRaimo Niskanen
2018-09-07Merge branch 'hans/public_key/DSAPrivateKey_in_verify/OTP-15284' into maintHans Nilsson
* hans/public_key/DSAPrivateKey_in_verify/OTP-15284: public_key: Remove strange and unused(?) DSAPrivateKey from verify/5
2018-09-07Merge branch 'hans/crypto/next_iv/OTP-15283' into maintHans Nilsson
* hans/crypto/next_iv/OTP-15283: crypto: Bug fix - crypto:next_iv regarding aes_ige256 crypto: Bug fix - blowfish_cbc allowed in crypto:next_iv
2018-09-07public_key: Remove strange and unused(?) DSAPrivateKey from verify/5Hans Nilsson
2018-09-07crypto: Bug fix - crypto:next_iv regarding aes_ige256Hans Nilsson
2018-09-07crypto: Bug fix - blowfish_cbc allowed in crypto:next_ivHans Nilsson
2018-09-07[supervisor] Add warning about race conditionSiri Hansen
ERL-724: "During a 'gentle' shutdown, supervisors unlink from their children before sending shutdown signals to them. This can lead to a race condition in supervision trees, when the timeout for gentle shutdown of a parent supervisor expires and it kills a child supervisor that has just unlinked from a child of its own, leaving the child supervisor's own child still running after its supervisor is killed." This commit adds a warning about this in the documentation.
2018-09-06Merge branch 'rickard/pcre-8.42/OTP-15217' into maintRickard Green
* rickard/pcre-8.42/OTP-15217: Update PCRE from version 8.41 to version 8.42
2018-09-06Merge pull request #1861 from fornwall/fix-cross-compilingRickard Green
erts: Fix configure check when cross-compiling OTP-15282
2018-09-06Merge branch 'maint-21' into maintRickard Green
* maint-21: Updated OTP version Update release notes Update version numbers kernel: Fix missing abort_connection in net_kernel Prevent inconsistent node lists Fix an endless rescheduling loop when a process is executing process_info(self(), ...)
2018-09-06Merge pull request #1943 from max-au/handle_signals_before_dirty_gcRickard Green
Fix an endless rescheduling loop when a process is executing process_… OTP-15275
2018-09-06Merge pull request #1951 from lasseebert/fix_ssl_typespecIngela Andin
Correct dialyzer spec for key option OTP-15281
2018-09-05Updated OTP versionOTP-21.0.8Erlang/OTP
2018-09-05Update release notesErlang/OTP
2018-09-05Update version numbersErlang/OTP
2018-09-05Merge branch 'sverker/net_kernel-missing-aborts/OTP-15280' into maint-21Erlang/OTP
* sverker/net_kernel-missing-aborts/OTP-15280: kernel: Fix missing abort_connection in net_kernel
2018-09-05Merge branch 'rickard/dist-entry-gc-fix/OTP-15279' into maint-21Erlang/OTP
* rickard/dist-entry-gc-fix/OTP-15279: Prevent inconsistent node lists
2018-09-05Merge branch 'max-au/handle_signals_before_dirty_gc/OTP-15275' into maint-21Erlang/OTP
* max-au/handle_signals_before_dirty_gc/OTP-15275: Fix an endless rescheduling loop when a process is executing process_info(self(), ...)
2018-09-05kernel: Fix missing abort_connection in net_kernelSverker Eriksson
2018-09-05Prevent inconsistent node listsRickard Green
If net_kernel "forgets" to abort a connection (as it currently might), the garbage collection of a distribution entry could cause node lists to enter an inconsistent state.
2018-09-05Merge branch 'sverker/erts/ets-memstat-false-leak/ERL-720/OTP-15278' into maintSverker Eriksson
* sverker/erts/ets-memstat-false-leak/ERL-720/OTP-15278: erts: Refactor ets FixedDeletion allocations erts: Fix ets memstat false leak of FixedDeletion
2018-09-04Fix an endless rescheduling loop when a process is executing ↵Maxim Fedorov
process_info(self(), ...) It is possible that a process has to yield before completing process_info BIF when it runs out of reductions. If this BIF is called by the process itself, it does not send a signal but executes in the context of a process. If it has to yield, it turns F_LOCAL_SIGS_ONLY flag on, which means new signals won't be fetched from the outer message queue. When the same process needs to execute dirty system code (e.g. dirty GC) it has to be run on a dirty scheduler. However signals enqueued into outer queue cause it to be rescheduled on a normal scheduler. F_LOCAL_SIGS_ONLY prevent outer queue signals delivery, creating an endless rescheduling loop. This commit disengages F_LOCAL_SIG_ONLY if process needs to execute dirty code in order to complete signal delivery and allow process to be moved to dirty run queue.
2018-09-04Merge PR-1929 from dotsimon/erl_compare_ext_lists_bug OTP-15277Sverker Eriksson
Erl compare ext lists bug (ERL-705)
2018-09-04Merge PR-1920 from saleyn/float_to_list OTP-15276Sverker Eriksson
Fix bug in compact representation of float_to_list/2
2018-09-04Fixed ssl_options typespec for keyLasse Skindstad Ebert
2018-09-04[sasl] Flush logger handlers to file before terminating nodeSiri Hansen
2018-09-04Merge pull request #1945 from gomoripeti/ms_transform_specHans Bolinder
Fix type spec of ms_transform:parse_trans/2
2018-09-03erts: Refactor ets FixedDeletion allocationsSverker Eriksson
2018-09-03erts: Fix ets memstat false leak of FixedDeletionSverker Eriksson
causing erlang:memory to report too much ets memory.
2018-09-03ops.tab: Fix potentially unsafe optimization of raise/2Björn Gustavsson
The operands for the raise/2 instruction are almost always in x(2) and x(1). Therefore the loader translates the raise/2 instruction to an i_raise/0 instruction which uses the values in x(2) and x(1). If the operands happens to be in other registers, the loader inserts move/2 instruction to move them to x(2) and x(1). The problem is that x(3) is used as a temporary register when generating the move/2 instructions. That is unsafe if the Value operand for raise/2 is x(3). Thus: raise x(0) x(3) will be translated to: move x(0) x(3) move x(3) x(1) move x(3) x(2) i_raise The Trace will be written to both x(2) and x(1). The current compiler will never use x(3) for the Value operand, so there is no need to patch previous releases. But a future compiler version might allocate registers differently.
2018-08-31Fix an endless rescheduling loop when a process is executing ↵Maxim Fedorov
process_info(self(), ...) It is possible that a process has to yield before completing process_info BIF when it runs out of reductions. If this BIF is called by the process itself, it does not send a signal but executes in the context of a process. If it has to yield, it turns F_LOCAL_SIGS_ONLY flag on, which means new signals won't be fetched from the outer message queue. When the same process needs to execute dirty system code (e.g. dirty GC) it has to be run on a dirty scheduler. However signals enqueued into outer queue cause it to be rescheduled on a normal scheduler. F_LOCAL_SIGS_ONLY prevent outer queue signals delivery, creating an endless rescheduling loop. This commit disengages F_LOCAL_SIG_ONLY if process needs to execute dirty code in order to complete signal delivery and allow process to be moved to dirty run queue.
2018-08-31Merge branch 'hans/crypto/init_test_engine_fix' into maintHans Nilsson
* hans/crypto/init_test_engine_fix: crypto: Let otp_test_engine only add what is needed OpenSSL_add_all_algorithms hangs on some test machines
2018-08-31Merge branch 'hasse/dialyzer/improve_guards/OTP-15268/ERL-680' into maintHans Bolinder
* hasse/dialyzer/improve_guards/OTP-15268/ERL-680: dialyzer: Improve handling of complex guards
2018-08-31Fix type spec of ms_transform:parse_trans/2Péter Gömöri
It can also return errors and warnings.
2018-08-30Merge branch 'ingela/ssl/send-recv-dead-lock/ERL-622' into maintIngela Anderton Andin
* ingela/ssl/send-recv-dead-lock/ERL-622: ssl: Improve close handling ssl: Adopt distribution over TLS to use new sender process ssl: Add new sender process for TLS state machine
2018-08-30Merge branch 'maint-21' into maintRickard Green
* maint-21: Updated OTP version Update release notes Update version numbers Fix missing 'in' trace events during 'running' trace
2018-08-30crypto: Let otp_test_engine only add what is neededHans Nilsson
OpenSSL_add_all_algorithms hangs on some test machines
2018-08-29Updated OTP versionOTP-21.0.7Erlang/OTP
2018-08-29Update release notesErlang/OTP