Age | Commit message (Collapse) | Author |
|
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
|
|
* sa/dialyzer-small-fixes:
Fix dialyzer warning on default clause for binary comprehension
Update results of race_SUITE/extract_translations
Update results of small_SUITE/flatten
Add codec_can and list_to_bitstring tests
Fix bug when reporting unused functions
Update Dialyzer's r9c_suite results
OTP-9483
|
|
into dev
* nick/ssh/stop_channel_tampers_with_trap_exit_flag/OTP-9386:
Corrected year in license header.
OTP-9386 - Calling ssh_sftp:stop_channel/1 resulted in that the trap_exit flag was set to true for the invoking process.
|
|
* nick/lht-idl-compiler-opt/OTP-9460:
[IC] Changed version, added release note and updated license headers.
ic: Fix typo, #ifudef -> #ifndef
|
|
Courtesy of William B. Morgan at Bigpoint Inc.
|
|
* hb/correction_zip_open/OTP-9472:
Fix a bug in zip:zip_open/1,2.
|
|
The example is for converting from infix to prefix. This change
uses to correct ordering of the triplet.
|
|
|
|
zip:zip_open/1,2 did not accept binary archives.
Also corrected the contracts of t/1 and tt/1.
|
|
* hb/correction_of_zip_contracts/OTP-9471:
Correct contracts in the zip module
|
|
* hb/et/remove_dialyzer_warnings/OTP-9470:
Remove Dialyzer warnings
|
|
The contracts of zip:zip_list_dir/1 and zip:zip_get/2 have been
corrected.
|
|
* ia/odbc/skip-tests-because-of-driver-issues:
Skip test if not applicable
|
|
|
|
Fixed dialyzer warning occuring on binary comprehension of form
"<< <<>> || {A, B} <- [{a, b}] >>" caused by default clause
inserted by compiler. Since this clause is different from the
case of list comprehension, dialyzer fails to suppress that warning.
|
|
|
|
* kj/eunit-surefire-fixes:
Generate separate surefire XMLs for each test suite
OTP-9465
|
|
* cr/trivia:
replace "a ssl" with "an ssl"
reindent pkix_path_validation/3
Trivial documentation fixes
OTP-9464
|
|
* rc/edoc-minor:
forgot to ensure that xmerl is found in path for include_lib to work
fix -spec declaration that doesn't work in R13B04
eliminate warnings about unused imports
removed CVS-keywords from source files
synchronized with edoc development version
OTP-9463
|
|
* hb/stdlib/contract_correction/OTP-9450:
Correct the contract of timer:now_diff/2
|
|
The contract of timer:now_diff() has been corrected.
(Thanks to Alex Morarash).
|
|
* nick/lht-idl-compiler-opt/OTP-9460:
Changed version, added release note and updated license headers.
ic: Implement multiple include optimization
ic: Fix preprocessor double expanded included files
ic: Improve ic_pragma performance by using ets:match
|
|
|
|
* lars/xmerl/attr_val_bug/OTP-9411:
Added test case for ticket 9411.
Entity replacement in attributes doesn't work poperly.
|
|
* lars/xmerl/cant_locate_xsd/OTP-9410:
Added ticket test case.
Fixed problem with relative paths to schemas.
|
|
|
|
|
|
|
|
|
|
* hl/gen_fsm-return:
Fix minor typo in gen_fsm documentation
OTP-9456
|
|
* ms/inet-socket-domain-error:
inet: error if fd does not match socket domain
OTP-9455
|
|
* cg/fix-constant-logical-operand:
Fix use of logical operator && with constant operand instead of bitwise &.
OTP-9454
|
|
* pg/fix-freebsd-dualcore-detection:
Fix bug in FreeBSD topology detection code
OTP-9453
|
|
* pg/fix-hibernate-scheduling-with-hipe:
Fix bug related to hibernate and HiPE (clear F_HIBERNATE_SCHED flag)
OTP-9452
|
|
|
|
|
|
|
|
|
|
* bjorn/erts/loader-related-bs-bugs/OTP-9284:
Fix binary construction with huge literal sizes
beam_load.c: Add overflow check of tag values
beam_makeops: Add some sanity checks
Fix construction of <<0:((1 bsl 32)-1)>>
|
|
|
|
|
|
|
|
|
|
|
|
Constructing binaries using the bit syntax with literals sizes
that would not fit in an Uint will either cause an emulator crash
or the loading to be aborted.
Use the new TAG_o tag introduced in the previous commit to make sure
that the attempt to create huge binary literals will generate a
system_limit exception at run-time.
|
|
The handling of large values for other tags than TAG_i (integer) is
buggy. Any tag value equal to or greater than 2^40 (5 bytes) will
abort loading. Tag values fitting in 5 bytes will be truncated to 4
bytes values.
Those bugs cause real problems because the bs_init2/6 and
bs_init_bits/6 instructions unfortunately use TAG_u to encode literal
sizes (using TAG_i would have been a better choice, but it is too late
to change that now). Any binary size that cannot fit in an Uint
should cause a system_limit exception at run-time, but instead the
buggy handling will either cause an emulator crash (for values in the
range 2^32 to 2^40-1) or abort loading.
In this commit, implement overflow checking of tag values as a
preparation for fixing the binary construction instructions. If any
tag value cannot fit in an Uint (except for TAG_i), change the
tag to the special TAG_o overflow tag.
|
|
We want to make sure that a tag/type name is not defined more than
once and that we don't define too many primitive tags. Primitive
tags must be named with lowercase letters (or they will be confused
with variable names in transformations in the ops.tab file).
|
|
Attempting to construct <<0:((1 bsl 32)-1)>>, the largest bitstring
allowed in a 32 bit emulator, would cause an emulator crash because
of integer overflow.
Fix the problem by using an Uint64 to avoid integer overflow.
Do not attempt to handle construction of <<0:((1 bsl 64)-1>> in
a 64-bit emulator, because that will certainly cause the emulator
to terminate anyway because of insufficient memory.
|
|
|