Age | Commit message (Collapse) | Author |
|
According to the supervisor's documentation:
"Important note on simple-one-for-one supervisors: The dynamically
created child processes of a simple-one-for-one supervisor are not
explicitly killed, regardless of shutdown strategy, but are expected
to terminate when the supervisor does (that is, when an exit signal
from the parent process is received)."
All is fine as long as we stop simple_one_for_one supervisor manually.
Dynamic children catch the exit signal from the supervisor and leave.
But, if this happens when we stop an application, after the top
supervisor has stopped, the application master kills all remaining
processes associated to this application. So, dynamic children that trap
exit signals can be killed during their cleanup (here we mean inside
terminate/2). This is unpredictable and highly time-dependent.
In this commit, supervisor module is patched to explicitly terminate
dynamic children accordingly to the shutdown strategy.
NOTE: Order in which dynamic children are stopped is not defined. In
fact, this is "almost" done at the same time.
|
|
* bjorn/deprecate-docbuilder/OTP-9509:
Deprecate the docbuilder application
|
|
* bjorn/erts/old-code-checking-improvements/OTP-9495:
Make the check_old_code/1 BIF auto-imported
|
|
* hb/spec_improvements/OTP-9485:
Improve and correct types and specifications in Kernel and STDLIB
|
|
* rc/stdlib-edoc-fix:
fix broken edoc annotations
OTP-9516
|
|
check_old_code/1 was documented to be auto-imported, but in fact
was not auto-imported. Since check_process_code/2 and the other
code loading BIFs are now auto-imported, for consistency auto-import
check_old_code/1 too.
|
|
|
|
Running Dialyzer on the test suites revealed a few type errors.
|
|
OTP-9502
|
|
* rz/add_proplist_type:
Add a proplist() type
OTP-9499
|
|
* ml/two-trivial-documentation-fixes:
Fix trivial documentation errors
OTP-9498
|
|
In the current implementation of supervisors, temporary children
should never be restarted. However, when a temporary child is
restarted as part of a one_for_all or rest_for_one strategy where
the failing process is not the temporary child, the supervisor
still tries to restart it.
Because the supervisor doesn't keep some of the MFA information
of temporary children, this causes the supervisor to hit its
restart limit and crash.
This patch fixes the behaviour by inserting a clause in
terminate_children/2-3 (private function) that will omit temporary
children when building a list of killed processes, to avoid having
the supervisor trying to restart them again.
Only supervisors in need of restarting children used the list, so
the change should be of no impact for the functions that called
terminate_children/2-3 only to kill all children.
The documentation has been modified to make this behaviour
more explicit.
|
|
|
|
zip:zip_open/1,2 did not accept binary archives.
Also corrected the contracts of t/1 and tt/1.
|
|
The contracts of zip:zip_list_dir/1 and zip:zip_get/2 have been
corrected.
|
|
* cr/trivia:
replace "a ssl" with "an ssl"
reindent pkix_path_validation/3
Trivial documentation fixes
OTP-9464
|
|
The contract of timer:now_diff() has been corrected.
(Thanks to Alex Morarash).
|
|
|
|
|
|
* sverker/testcase/OTP-9423:
Add test case for ETS bug OTP-9423
|
|
|
|
|
|
|
|
|
|
Conflicts:
erts/vsn.mk
|
|
|
|
erlang:memory is not supported
Replace the count_children_allocator_test with try erlang:memory in
order to make sure there is no attempt at running this test case if
erlang:memory is not supported.
|
|
* hb/stdlib/queue_contracts/OTP-9418:
Modify the contracts of the queue module
|
|
The contracts of the queue module have been re-written as to avoid
some issues concerning Dialyzer and opaque types.
|
|
|
|
|
|
|
|
An incorrect spec, rpc:yield/1, has been fixed.
|
|
erl_tar:extract earlier failed when unpacking inside a directory which
had some parent directory to which the user had no read access. This
is corrected.
|
|
|
|
|
|
Recently I was adding specs to an API and found that there is
no canonical proplist() type defined.
|
|
A specification that could cause problems for Dialyzer has been fixed.
An opaque type in erl_eval has been turned in to a ordinary type. This
is a temporary fix.
|
|
* pan/stdlib_doc_fixes/OTP-9318:
Fixup of re doc and specs
|
|
|
|
|
|
|
|
OTP-9088: [agent] Added support for sending traps to IPv6 targets.
OTP-9119: [agent] To be able to handle multiple engine-id(s) when
sending trap(s), the function
snmp_community_mib:add_community/6 has been added.
OTP-9162: [manager] The API for snmp requests has been augmented to
allow the caller to override some configuration.
OTP-9174: [manager] The old API functions (for get and set
requests) are now officially deprecated.
OTP-9183: [agent] Pass extra info through the agent to the net-if
process when sending notifications.
OTP-9208: Added type specs for functions that do not return.
Kostis Sagonas
Merge branch 'bmk/snmp/snmp420_integration' into dev
|
|
Filipe David Manana
OTP-9114: [ftp] Added (type) spec for all exported functions.
OTP-9123: mod_esi:deliver/2 made to accept binary data.
Bernard Duggan
OTP-9124: [httpd] Prevent XSS in error pages.
Michael Santos
OTP-9131: [httpd] Wrong security property names used in documentation.
Garrett Smith
OTP-9157: [httpd] Improved error messages.
Ricardo Catalinas Jim�nez
OTP-9158: [httpd] Fix timeout message generated by mod_esi.
Bernard Duggan
OTP-9202: [httpd] Extended support for file descriptors.
Attila Rajmund Nohl
OTP-9230: The default ssl kind has now been changed to essl.
OTP-9246: [httpc] httpc manager crash because of a handler retry
race condition.
Merge branch 'bmk/inets/inet56_integration' into dev
|
|
* hb/stdlib/dets_tablenames/OTP-9282:
Allow Dets tablenames to be arbitrary terms
Conflicts:
lib/stdlib/src/dets.erl
|
|
* hb/stdlib/doc_specs/OTP-9271:
Use Erlang specs and types for documentation
Conflicts:
lib/stdlib/doc/src/timer.xml
|
|
* hb/stdlib/specs/OTP-9267:
Types and specifications have been modified and added
Conflicts:
lib/stdlib/src/timer.erl
|
|
|
|
Use Erlang specs and types for documentation
|
|
Also removes the 'catch' from timer:tc functions which masked errors
in measuring code.
|