aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2019-03-29Merge branch ↵John Högberg
'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
2019-03-28erl_tar: Use read_ahead when reading compressed tar filesJohn Högberg
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.
2019-03-28kernel: Fix performance regression on reading compressed filesJohn Högberg
An internal buffer size was too small, causing a considerable performance degradation compared to OTP 20.
2019-03-22Merge branch 'maint-21' into maintRickard Green
* maint-21: Updated OTP version Prepare release # Conflicts: # make/otp_version_tickets
2019-03-22Merge branch ↵Rickard Green
'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
2019-03-21Prepare releaseErlang/OTP
2019-03-20Merge pull request #2162 from ↵Ingela Andin
danbaranov/public-key-less-strict-county-name-check public_key: Work around for certificates with 3 character country codes OTP-15687
2019-03-20[xmerl] Normalize attribute correctly when references are usedLars Thorsen
2019-03-19allowed 3 letters country code to be validDenis Baranov
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.
2019-03-19[xmerl] Replace character refs correctly in attributesLars Thorsen
2019-03-18Prepare releaseErlang/OTP
2019-03-18Merge branch 'ingela/ssl/recv-timeout-bug/ERL-884/ERL-883/OTP-14701' into ↵Erlang/OTP
maint-21 * ingela/ssl/recv-timeout-bug/ERL-884/ERL-883/OTP-14701: ssl: Cancel recv timer in all places
2019-03-18Merge branch 'ingela/ssl/transport-transparance/ERL-861/OTP-15679' into maint-21Erlang/OTP
* ingela/ssl/transport-transparance/ERL-861/OTP-15679: ssl: Fix transport transparancy
2019-03-18Add smoke test for erl_callRickard Green
2019-03-18Add new api functions to ei_fake_progRickard Green
These functions were added in erl_interface-3.11
2019-03-18Fix timeout value when waiting for emulator startRickard Green
2019-03-18Fix initialization of erl_callRickard Green
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.
2019-03-16ssl: Cancel recv timer in all placesIngela Anderton Andin
Would cause connection to crash although all data was delivered to ssl:recv
2019-03-11Prepare releaseErlang/OTP
2019-03-11ssl: Fix transport transparancyIngela Anderton Andin
2019-03-08Merge branch 'peterdmv/inets/httpd_erl_script_timeout/ERIERL-321/OTP-15669' ↵Péter Dimitrov
into maint * peterdmv/inets/httpd_erl_script_timeout/ERIERL-321/OTP-15669: inets: Fix handling of erl_script_timeout Change-Id: I6a90408de48df6b8b01f44e0b273507bcec27b13
2019-03-08inets: Fix handling of erl_script_timeoutPéter Dimitrov
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
2019-03-08Merge branch 'sverker/maint/ets-no-mbuf-trapping/OTP-15660' into maintSverker Eriksson
* sverker/maint/ets-no-mbuf-trapping/OTP-15660: erts: Remove ets traversal yielding if heap fragment
2019-03-08Merge branch 'anders/diameter/21.3/OTP-15654' into maintAnders Svensson
* anders/diameter/21.3/OTP-15654: Update appup for diameter 2.2 in OTP 21.3
2019-03-08Merge branch 'anders/diameter/distribution/OTP-15398' into maintAnders Svensson
* 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
2019-03-08Merge branch 'ingela/ssl/ftp/continue/chunk-timing/ERIERL-316/OTP-15666' ↵Ingela Anderton Andin
into maint * ingela/ssl/ftp/continue/chunk-timing/ERIERL-316/OTP-15666: ssl: Correct active once emulation ftp: New test case
2019-03-08Merge branch 'siri/logger/file-logging-improvements' into maintSiri Hansen
* 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
2019-03-08[logger] Add option file_check to logger_std_hSiri Hansen
OTP-15663 This option indicates how often the handler shall check if the log file still exists and if the inode is changed.
2019-03-08[logger] Add log file rotation by options to logger_std_hSiri Hansen
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.
2019-03-08ssl: Correct active once emulationIngela Anderton Andin
Conflicts: lib/ftp/test/ftp_SUITE.erl
2019-03-08ftp: New test caseIngela Anderton Andin
2019-03-07Merge branch 'sverker/ets-no-mbuf-trapping/OTP-15660'Sverker Eriksson
into sverker/maint/ets-no-mbuf-trapping/OTP-15660
2019-03-07erts: Remove ets traversal yielding if heap fragmentSverker Eriksson
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.
2019-03-07Merge branch 'rickard/make-fixes-21/OTP-15657' into maintRickard Green
* rickard/make-fixes-21/OTP-15657: Remove own configured RM make variable
2019-03-07Merge branch 'siri/logger/optimize-formatter/OTP-15647' into maintSiri Hansen
* siri/logger/optimize-formatter/OTP-15647: [logger] Improve formatter performance
2019-03-07[logger] Improve formatter performanceSiri Hansen
2019-03-07Merge branch 'siri/logger/bench' into maintSiri Hansen
* 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
2019-03-07[logger] Add benchmark of big log events with chars_limit and max_sizeSiri Hansen
2019-03-07[logger] Add max memory usage to statistics in logger_olpSiri Hansen
2019-03-07Skip logger benchmarks in normal kernel testSiri Hansen
2019-03-07[logger] Add benchmark of events per millisecond for handlersSiri Hansen
2019-03-07Merge branch 'ingela/ftp/chunk-timing/ERIERL-316/OTP-15659' into maintIngela Anderton Andin
* ingela/ftp/chunk-timing/ERIERL-316/OTP-15659: ftp: Correct test case ftp: Fix timing bug
2019-03-07ftp: Correct test caseIngela Anderton Andin
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.
2019-03-06Merge 'rickard/make-fixes-20/OTP-15657' into 'rickard/make-fixes-21/OTP-15657'Rickard Green
* rickard/make-fixes-20/OTP-15657: Remove own configured RM make variable
2019-03-06Merge 'rickard/make-fixes-19/OTP-15657' into 'rickard/make-fixes-20/OTP-15657'Rickard Green
* rickard/make-fixes-19/OTP-15657: Remove own configured RM make variable
2019-03-06Merge 'rickard/make-fixes-18/OTP-15657' into 'rickard/make-fixes-19/OTP-15657'Rickard Green
* rickard/make-fixes-18/OTP-15657: Remove own configured RM make variable
2019-03-06Merge 'rickard/make-fixes-17/OTP-15657' into 'rickard/make-fixes-18/OTP-15657'Rickard Green
* rickard/make-fixes-17/OTP-15657: Remove own configured RM make variable
2019-03-06Remove own configured RM make variableRickard Green
Instead rely on gnu make's pre-defined RM variable which should equal 'rm -f'
2019-03-06Add diameter_dist_SUITE to exercise diameter_dist:route_session/2Anders Svensson
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.
2019-03-06Add consistent hashing to diameter_dist:route_session/2Anders Svensson
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.