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.
|
|
The functions zlib:deflateSetDictionary/2 and zlib:inflateSetDictionary/2
accept iodata() as Dictionary.
The functions zlib:crc32/2,3, zlib:adler32/2,3, zlib:compress/1,
zlib:uncompress/1, zlib:zip/1, and zlib:unzip/1 accept iodata() as
data.
|
|
* 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
|
|
* ia/odbc/stored-procedures-does-not-cleanup/OTP-9444:
When using output parameters the internal odbc state was not correctly cleaned causing the next call to param_query to missbehave.
|
|
cleaned causing the next call to param_query to missbehave.
Also corrected some test code
|
|
* lukas/test_server/fix_suite_compile_error/OTP-9517:
Move test_server_test_lib.hrl to test release dir
|
|
* hb/spec_improvements/OTP-9485:
Improve and correct types and specifications in Kernel and STDLIB
|
|
* lukas/common_test/cth_prio/OTP-9445:
Fix a couple of minor bugs with hook priority
Update to reflect addition of CTH priority addition
Update CTH priority default to be 0
Update to reflect new cth callback api
Update the return from init/2 to be {ok, NewState} or {ok,NewState,Priority} instead of NewState.
Add priority functionality and tests for ct hooks
Update internal hooks state to use a record instead of tuples
|
|
* rc/stdlib-edoc-fix:
fix broken edoc annotations
OTP-9516
|
|
* pl/no_bat_files_none_win32:
Do not install *.bat files on non-win32 machines
OTP-9515
|
|
* fm/gen_tcp_udp_doc_packet_type:
Fix type of Packet arg of gen_tcp:send/2 and gen_udp:send/4
OTP-9514
|
|
* ta/wx-obsolete-guard:
wx: fix obsolete guard warning (list/1)
OTP-9513
|
|
* ta/hipe_cleanup:
Clean up hipe.hrl.src (Signed-off-by: Kostis)
OTP-9511
|
|
|
|
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.
|
|
|
|
* ia/ssl/use-inet-and-gen-specs:
Use inet and gen_* dialyzer specs
|
|
|
|
The bugs caused the sorting priority to be wrong when using
installed priority and built in priority. Tests to prove the
order of hooks to be correct have also been added.
|
|
|
|
|
|
|
|
instead of NewState.
NewState can still be returned, but is only kept for backward compatability reasons.
|
|
Priority allows the user of ct hooks to specify which order the hooks should execute in. The priority of a hook is specified when installing the hook, and stays the same for both pre and post hooks
|
|
|
|
Running Dialyzer on the test suites revealed a few type errors.
|
|
|
|
* rc/eunit-2.2.0:
Updated to EUnit version 2.2.0
OTP-9505
|
|
New macros assertNotMatch(Guard, Expr), assertNotEqual(Unexpected, Expr),
and assertNotException(Class, Term, Expr).
The debugMsg macro now also prints the pid of the current process.
When testing all modules in a directory, tests in <Module>_tests.erl are
no longer executed twice.
The use of 'regexp' internally has been replaced with 're'.
|
|
* ta/teach_emacs_yecc_and_leex_compile:
Teach the emacs mode to compile yecc and leex files
OTP-9503
|
|
If visiting a .yrl or .xrl file in emacs with erlang-mode,
then the `erlang-compile' function (normally bound to C-c C-k),
now knows how to compile yecc and leex files, and then, if that
compilation succeeds, also compiles the resulting .erl files.
Also introduce a `erlang-compile-command-function-alist'
to make it possible to hook in other functions for computing
compilation commands/expressions, depending on file name.
|
|
OTP-9502
|
|
* rz/add_proplist_type:
Add a proplist() type
OTP-9499
|
|
* ml/two-trivial-documentation-fixes:
Fix trivial documentation errors
OTP-9498
|
|
The type is marked as a binary() or a string() but in practice it can
be an iodata(). The test suite was updated to confirm the gen_tcp/2
and gen_udp:send/4 functions accept iodata() (iolists) packets.
|
|
When the test environment supports a newer Postgres driver,
(newer than psqlODBC 08.04.0200) the utf8 test case should work
as expected and can be enabled again.
|
|
* hb/inet_types_and_specs/OTP-9260:
Improve types and specifications of the inet modules
|
|
While at it, eliminate an unnecessary use of throw/catch in the
implementation of soft_purge/1.
|
|
|
|
Add erlang:check_old_code/1 to quickly check whether a module
has old code. If there is no old code, there is no need to call
erlang:check_process_code/2 for all processes, which will save
some time if there are many processes.
|
|
* anders/diameter/augment_inherited_enums/OTP-9469:
Allow @enum when AVP is defined in an inherited dictionary.
|
|
* anders/diameter/optional_appid_in_spec/OTP-9467:
@id required in dictionary files only when @messages is specified.
|
|
* hw/update-chmod-without-f:
Again: Call chmod without the "-f" flag
OTP-9491
|
|
* ao/fix-percept-msgs:
Fix message handling in select requests
Add demonitor to avoid keeping DOWN message in the queue
OTP-9490
|
|
percept_db used to send results in untagged messages, and use
a non selective receive to extract them. When percept is used
from the shell process, this can confuse other messages with
the actual result.
Add a tag to the message to be {result, Result}.
|
|
fix one spec in do_start/0
|
|
* sa/dialyzer-server-loop-fix:
Fix server loop detection
OTP-9489
|
|
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.
|
|
* gs/yecc-example:
Fix incorrect order of pseudo variables in yecc example
OTP-9484
|