Age | Commit message (Collapse) | Author |
|
'john/kernel/compressed-file-read-degradation/OTP-15706/ERIERL-336' into maint
* john/kernel/compressed-file-read-degradation/OTP-15706/ERIERL-336:
erl_tar: Use read_ahead when reading compressed tar files
kernel: Fix performance regression on reading compressed files
|
|
Jumping around in a compressed file is nowhere near as cheap as
for uncompressed files, as it requires reading and decompressing
up until the desired position. Using read_ahead will improve
performance slightly.
|
|
An internal buffer size was too small, causing a considerable
performance degradation compared to OTP 20.
|
|
* maint-21:
Updated OTP version
Prepare release
# Conflicts:
# make/otp_version_tickets
|
|
'lars/xmerl-scan-attribute-fixes/OTP-15684/OTP-15685/ERL-837/ERL-475' into maint
* lars/xmerl-scan-attribute-fixes/OTP-15684/OTP-15685/ERL-837/ERL-475:
[xmerl] Normalize attribute correctly when references are used
[xmerl] Replace character refs correctly in attributes
|
|
|
|
danbaranov/public-key-less-strict-county-name-check
public_key: Work around for certificates with 3 character country codes
OTP-15687
|
|
|
|
Some certificate issuers like Apple use USA instead of US as a country
name. This makes handshake with a server not possible as this considered
as not valid certificate. This commit eases that requirement to allow
both 2 and 3 letters country names.
|
|
|
|
|
|
maint-21
* ingela/ssl/recv-timeout-bug/ERL-884/ERL-883/OTP-14701:
ssl: Cancel recv timer in all places
|
|
* ingela/ssl/transport-transparance/ERL-861/OTP-15679:
ssl: Fix transport transparancy
|
|
|
|
These functions were added in erl_interface-3.11
|
|
|
|
Previously erl_call relied on the implicit initialization made
of the ei-lib if no explicit initialization had been done. This
implicit initialization was utterly broken and was removed in
erl_interface-3.11 (OTP 21.3) since it has been documented for
a very long time that an explicit initialization is required.
|
|
Would cause connection to crash although all data was delivered to ssl:recv
|
|
|
|
|
|
into maint
* peterdmv/inets/httpd_erl_script_timeout/ERIERL-321/OTP-15669:
inets: Fix handling of erl_script_timeout
Change-Id: I6a90408de48df6b8b01f44e0b273507bcec27b13
|
|
When httpd was started with 'erl_script_timeout', the value of the
option was converted to milliseconds before storage. Subsequent
calls to httpd:info/1 returned the input value multiplied by 1000.
This change fixes the handing of erl_script_timeout by storing the
timeout in seconds and converting it to milliseconds before usage.
Change-Id: Ic308d83b59ad0884e053f096f995754c89adcbf4
|
|
* sverker/maint/ets-no-mbuf-trapping/OTP-15660:
erts: Remove ets traversal yielding if heap fragment
|
|
* anders/diameter/21.3/OTP-15654:
Update appup for diameter 2.2 in OTP 21.3
|
|
* anders/diameter/distribution/OTP-15398:
Add diameter_dist_SUITE to exercise diameter_dist:route_session/2
Add consistent hashing to diameter_dist:route_session/2
Add options to diameter_dist:route_session/2 node selection
Add diameter_dist for ready spawn_opt callbacks
Tweak/document request handler callback
Document acknowledgements in transport interface
Fix comment typo
|
|
into maint
* ingela/ssl/ftp/continue/chunk-timing/ERIERL-316/OTP-15666:
ssl: Correct active once emulation
ftp: New test case
|
|
* siri/logger/file-logging-improvements:
[logger] Add option file_check to logger_std_h
[logger] Add log file rotation by options to logger_std_h
[logger] Add better control of file modes in logger_std_h
[logger] Refactor logger_std_h
[logger] Make sure log file is re-opened with configured file options
|
|
OTP-15663
This option indicates how often the handler shall check if the log
file still exists and if the inode is changed.
|
|
OTP-15479
OTP-15662
New configuration map for logger_std_h:
#{type => file,
file => file:filename(),
modes => [file:mode()],
max_no_bytes => pos_integer() | infinity,
max_no_files => non_neg_integer(),
compress_on_rotate => boolean()}
For backwards compatibility, the old variant for specifying the file
name via the 'type' parameter is still supported, i.e. {file,FileName}
and {file,FileName,Modes}, but it is no longer documented.
Rotation scheme:
The current log file always has the same name, and the archived files
get extensions ".0", ".1", ... The newest archive has extension ".0",
and the oldest archive has the highest number.
If 'compress_on_rotate' is set to true, the archived files are gzipped
and get the additional extension ".gz", e.g. error.log.0.gz.
Rotation is turned off by setting 'max_no_bytes' to infinity. Setting
'max_no_files' to 0 does not turn off rotation, but only specifies
that no archives are to be saved.
|
|
Conflicts:
lib/ftp/test/ftp_SUITE.erl
|
|
|
|
into sverker/maint/ets-no-mbuf-trapping/OTP-15660
|
|
Many heap fragments do no longer make the GC slow.
Even worse, we are not guaranteed that a yield will provoke a GC
removing the fragments, which might lead to a one-yield-per-bucket
scenario if the heap fragment(s) still remains after each yield.
|
|
* rickard/make-fixes-21/OTP-15657:
Remove own configured RM make variable
|
|
* siri/logger/optimize-formatter/OTP-15647:
[logger] Improve formatter performance
|
|
|
|
* siri/logger/bench:
[logger] Add benchmark of big log events with chars_limit and max_size
[logger] Add max memory usage to statistics in logger_olp
Skip logger benchmarks in normal kernel test
[logger] Add benchmark of events per millisecond for handlers
|
|
|
|
|
|
|
|
|
|
* ingela/ftp/chunk-timing/ERIERL-316/OTP-15659:
ftp: Correct test case
ftp: Fix timing bug
|
|
Test case can not make assumptions on how many chunks will delivered
from the underlaying TCP stream.
Some code commented out that should be used in some form to create
a new test case. There might be other issues than the one fixed in
the previous commit.
|
|
* rickard/make-fixes-20/OTP-15657:
Remove own configured RM make variable
|
|
* rickard/make-fixes-19/OTP-15657:
Remove own configured RM make variable
|
|
* rickard/make-fixes-18/OTP-15657:
Remove own configured RM make variable
|
|
* rickard/make-fixes-17/OTP-15657:
Remove own configured RM make variable
|
|
Instead rely on gnu make's pre-defined RM variable which should
equal 'rm -f'
|
|
Spread a server over three nodes, one of which terminates a peer
connection, the other two to handle requests. Terminate transport on one
of the server nodes and ensure that answers come only from the other
two.
|
|
If the Session-Id optional value to node() mapping fails then hash
Session-Id to a node by default, instead of selecting the local node as
in the parent commit. The previous behaviour is configurable by setting
default = local in an options map.
Nodes make themselves part of the pool from which nodes are selected by
calling diameter_dist:attach/1 with the list of service names they are
willing to handle requests for, the local node being selected in the
absence of any attached nodes. The original idea was to base the node
pool on share_peers and/or use_shared_peers configuration, but that
configuration determines where outgoing requests can be sent, while
route_session/2 deals with incoming requests, so it's not obvious that
conflating the two is a good thing. (Also because
share_peers/use_shared_peers can be used in different ways; the former
could have been skipped entirely.)
The hashing effectively places nodes on a circle, a hashed Session-Id
being mapped to the nearest predecessor node (clockwise). Nodes are
rehashed with each Session-Id (with the id as salt) for a more even
distribution, at the cost of performance, although how high the cost or
how even the distribution has yet to be tested. Obviously, the larger
the number of attached nodes, the higher the cost. Adding/removing an
attached node only affects session ids that hash in the interval between
the added/removed node and its successor (hence consistent hashing).
Options are tweaked slightly compared to the parent commit, and it is
now possible to restrict the optional value mapping to specific Diameter
identities, to avoid mapping an id that was generated at the peer when
the peer is also implemented with the diameter application.
Note that diameter_dist is not yet an officially documented interface,
so could change. Documentation is in the module itself.
|