Age | Commit message (Collapse) | Author |
|
* maint:
Fix rare race condition in Dets
|
|
* hb/stdlib/fix_dets_test:
Fix rare race condition in Dets
|
|
The correction is due to the the evil testcase
dets_SUITE:simultaneous_open(). If the process repairing a Dets file
is killed (should normally never happen), and another process tries to
repair the file, a temporary file from the first process could live on
for a while, even after a successful call to file:delete(). This has
only been seen on W-nd-ows, where it is a known problem.
There are other ways to deal with the problem (rename the file; use
some other filename), but we continue using one certain filename in
order to be as backwards compatible as possible.
|
|
* maint:
debugger: clean up Common Test adaption
|
|
* hb/debugger/ct_line_cleanup:
debugger: clean up Common Test adaption
|
|
* hb/dialyzer/compiler_option_asm_removed:
dialyzer: remove recognition of the compiler option 'asm'
|
|
|
|
|
|
|
|
|
|
* vinoski/crashdump-sigusr1:
Clarify the use of SIGUSR1 for forcing crash dumps
|
|
|
|
* vinoski/clarify-drv-async-return:
Clarify docs for driver_async() return value
|
|
|
|
OTP-12256
* HansN/prop_test_updates:
Optimizations
ssh_eqc_encode_decode.erl compiles
Add timeout to a property test (Thanks John & Tobias @ QuviQ)
Reduce the total testing time for the properties to 20 seconds
No side effects in function arguments
Passing global var to QuickCheck statemachine
|
|
|
|
OTP-12255
* vinsentru/inets_ftp_extension:
INETS FTP: EPSV and EPRT for IPv4 added
|
|
|
|
OTP-11766
|
|
|
|
|
|
|
|
* qrilka/patch-2/typo-fix:
Minor misprints correction
|
|
|
|
|
|
Symptom: base64_SUITE:roundtrip crashes with hipe compiled stdlib.
Problem: HIPE_WRAPPER_BIF_DISABLE_GC pushed a "trap frame", but the frame
was only popped if the call was recursive.
Solution: Only reserve "trap frame" if BIF call is recursive.
|
|
The trap_frame got pushed twice, first by the wrapper then by
hipe_push_beam_trap_frame as it was looking at F_DISABLE_GC.
|
|
|
|
* egil/map-type-opt/OTP-12253:
compiler: Type is_nonempty_list optimization
compiler: Type map optimization
|
|
|
|
* peppe/common_test/crash_during_close:
Solve memory consumption problem
Fix problem with buffered async io messages executed too late
Don't generate weird exit if ct_logs has terminated before shut down
OTP-12159
|
|
The compiler option 'asm' has been replaced by 'from_asm' in
Erlang/OTP 18.0.
|
|
The ct_line module was removed some releases ago.
|
|
|
|
* rickard/eager-check-io/OTP-12117:
Introduce support for eager check I/O scheduling
|
|
* lukas/erts/non-blocking-shell:
Fix io:columns/0 timeout when invoked via user
kernel,ssh: Add synchronous user_drv protocol
erts: Make writing to non-tty fds non-blocking
erts: Make tty driver non-blocking
|
|
...using ct_release_test:upgrade/4
|
|
This is a library module for testing release related functionality in
one or more applications. The first version of ct_release_tests
include test of upgrade only.
Note that the hipe application does not support any upgrade, and typer
and dialyzer requires hipe, so these three applications are always
exluded from the test.
|
|
Takes the name of the child (or Pid, in the case of a
simple_one_for_one supervisor) and returns the map which specifies the
child.
|
|
Earlier, supervisor flags and child specs were given as tuples. While
this is kept for backwards compatibility, it is now also allowed to
give these parameters as maps:
-type sup_flags() :: #{strategy => strategy(), % optional
intensity => non_neg_integer(), % optional
period => pos_integer()} % optional
-type child_spec() :: #{id => child_id(), % mandatory
start => mfargs(), % mandatory
restart => restart(), % optional
shutdown => shutdown(), % optional
type => worker(), % optional
modules => modules()} % optional
Default values are as follows:
Supervisor flags:
strategy: one_for_one
intensity: 1
period: 5
Child specs:
restart: permanent
type: worker
shutdown: 5000 for workers, 'infinity' for supervisors
modules: [M], where M comes from the child's start {M,F,A}
Some of these default values are quite hard to decide on, since there
really is no "most common way". It always depends on the use case. So
we decided that the most important reason for having default values is
to lower the start barrier and get "something" running. For production
use, most systems must be fine tuned in this respect anyway.
This is how we reasoned about it:
Strategy: just pick one - and 'one_for_one' was most used in OTP.
Max restart frequency (intensity/period): by allowing one restart only
we keep the important supervisor feature of restarting children, but
we also avoid the possibility of scaling to a huge amount of restarts
if the supervisor tree is deep.
Restart: just pick one - and 'permanent' is fairly common.
Shutdown for workers: to avoid the confusion of why the terminate
function is not executed, we decided not to use 'brutal_kill'. Which
number to use is probably not that important, so we chose 5000.
Shutdown for supervisors: the recommended shutdown value for
supervisors is 'infinity', so we decied to use that. Having the same
(integer) value as for workers can give very strange results.
Type: just pick one - and we believe that 'worker' is most common
|
|
The upgrade instruction 'remove_module' was added in OTP R7B (and
possibly in a patch in R5B or R6B, ticket OTP-3477), and translates to
the low level instruction 'remove', but adds the parameter DepMods
(modules on which Mod is dependent). The ticket says that
"remove_module should be added for symmetry with the add_module
instruction". remove_module was never documented or tested, and it was
never mentioned in a release note. It therefore seems to be low risk
in removing it.
The correct instruction to use when removing a module is
{delete_module,Mod}
which was added in OTP R10B and which is also documented and
tested. This translates to low level instructions 'remove' and 'purge'
i.e. the module is brutally purged after setting the current code to
old. This hardcoded brutal purge is the reason why PrePurge and
PostPurge parameters can not be given with the delete_module
instruction.
The parameter DepMods which was inclued in the remove_module
instruction does not exist for delete_module. From the documentation's
point of view, this is the same for add_module, and thus the two
instructions {add_module,Mod} and {delete_module,Mod} are now
symmetric. However, in the code there is a second instruction for
adding a module, {add_module,Mod,DepMods}, which is not documented. To
add symmetry even for this, {delete_module,Mod,DepMods} is now also
added. Documentation is added for all instructions.
|
|
* tuncer/compiler/finalize-asm-deprecation/OTP-12100:
compiler: finalize 18.x 'asm' deprecation
|
|
* maint:
BER decoding: Don't allow primitives with indefinite lengths
|
|
* bjorn/asn1/primitive-indefinite-length/OTP-12205:
BER decoding: Don't allow primitives with indefinite lengths
|
|
|
|
* adelzhang/fix_application_master_comment:
Fix obsolete comment
|
|
This implements the LDAP Password Modify Extended Operation (RFC 3062)
with two new functions modify_password/3 and modify_password/4. The
former is for directly setting passwords, and the latter is for users to
change their own passwords.
Since all three parameters are optional, I've opted to support this with
the empty string rather than a property list. This seems consistent with
other functions in the module (i.e. modify_dn/5).
|
|
Code incorrectly relied on undefined C behavior. Clang and gcc 4.9 do not behave
as code expected. This affected cores and processors detection on FreeBSD.
|
|
|
|
The crash_dump document mentions indirectly that delivering a SIGUSR1 to a
running emulator process can force it to crash dump. Clarify that text to
make it clear SIGUSR1 can be used for that purpose, and also add a similar
note about using SIGUSR1 to the erl documentation.
|