aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2017-05-22Merge branch 'raimo/gen_statem-dev'Raimo Niskanen
* raimo/gen_statem-dev: Fix documentation details
2017-05-22Fix documentation detailsRaimo Niskanen
2017-05-22ssl: Handle econnreset windows obscuritiesIngela Anderton Andin
An UDP socket does note have a connection and should not recive econnreset, however this happens on on some windows versions. Just ignoring it appears to make things work as expected!
2017-05-22Merge branch 'hans/ssh/trim_state'Hans Nilsson
2017-05-22ssh: remove extra options copy from internal stateHans Nilsson
2017-05-22ssh: fix the rsa-sha2-* hostkey verify errorHans Nilsson
2017-05-22ssh: Handle if server-sig-algs and client has empty intersectionHans Nilsson
In case server-sig-algs names only algorithms unknown to the client, the client will try with the ones it knows
2017-05-22Revert "ssh: disable rsa-sha2-* for clients"Hans Nilsson
This reverts commit 4d7ff0a8169141d18335638cf7c6e48d4c18cdf2.
2017-05-22Merge branch 'ingela/ssl/ECDH_ECDSA/ERL-381/OTP-14421'Ingela Anderton Andin
* ingela/ssl/ECDH_ECDSA/ERL-381/OTP-14421: ssl: Improve tests ssl: Add missing algorithm ecdh_ecdsa
2017-05-22Merge branch 'dgud/observer/fix-bytes'Dan Gudmundsson
* dgud/observer/fix-bytes: observer: Fix words to bytes
2017-05-19ssl: Improve testsIngela Anderton Andin
Test should check that we get the expected key exchange algorithm for the provided server cert. We do not want to test OpenSSL s_server. Do not try to test cipher suites against OpenSSL that it does not support.
2017-05-19Merge branch 'master' into jv-gen-server-exitsSiri Hansen
2017-05-19Merge branch 'hasse/kernel/global_read_concurrency/OTP-14419'Hans Bolinder
* hasse/kernel/global_read_concurrency/OTP-14419: kernel: Create table 'global_names' with read_concurrency
2017-05-19Merge branch 'siri/ct_ssh/shell/OTP-14415'Siri Hansen
* siri/ct_ssh/shell/OTP-14415: [ct] Add ct_ssh:shell/2,3
2017-05-19Merge branch 'siri/etop/many-procs-timeout/OTP-14393'Siri Hansen
* siri/etop/many-procs-timeout/OTP-14393: [etop] Extend timer when fetching process info from node
2017-05-19Merge branch 'hasse/kernel/limit_crash_reports/OTP-14417'Hans Bolinder
* hasse/kernel/limit_crash_reports/OTP-14417: stdlib: Limit the size of gen_statem's error events kernel: Introcude error_logger:get_format_depth() stdlib: Limit the size of proc_lib's crash reports stdlib: Limit the size of gen_server's error events kernel: Add error_logger:limit_term/1 stdlib: Add io_lib:limit_term/2
2017-05-19Merge branch 'siri/cuddle-master'Siri Hansen
* siri/cuddle-master: [ct] Clean up after keep_logs test
2017-05-19[ct] Add ct_ssh:shell/2,3Siri Hansen
2017-05-19kernel: Create table 'global_names' with read_concurrencyHans Bolinder
Measurements showed contention on one of the ETS tables created by the 'global' module.
2017-05-19genop.tab: Add an OTP 20 commentBjörn Gustavsson
Make it clear that is_tagged_tuple/4 was added in OTP 20 (not R17).
2017-05-19ssl: Add missing algorithm ecdh_ecdsaIngela Anderton Andin
2017-05-19Merge branch 'bjorn/cuddle-with-tests'Björn Gustavsson
* bjorn/cuddle-with-tests: code_SUITE: Remove unused functions Eliminate warning for variable 'Config' being unused compile_SUITE: Don't create a directory called 'core' Don't crash in end_per_testcase/2 in code_SUITE:on_load_embedded/1
2017-05-18stdlib: Limit the size of gen_statem's error eventsHans Bolinder
The postponed events, the user state and data, and the error reason are all limited in error events (if the Kernel variable error_logger_format_depth is set).
2017-05-18kernel: Introcude error_logger:get_format_depth()Hans Bolinder
2017-05-18stdlib: Limit the size of proc_lib's crash reportsHans Bolinder
The size of the message queue and the dictionary is limited in crash reports. To avoid creating the potentially huge list of messages of the message queue, messages are received (if the Kernel variable error_logger_format_depth is set). The tag 'message_queue_len' has been added to the crash report.
2017-05-18stdlib: Limit the size of gen_server's error eventsHans Bolinder
The state of the gen_server is limited in error events before exiting (if the Kernel variable error_logger_format_depth is set). An alternative is to let the error_logger limit all messages (error_msg, format, warning_msg, info_msg), which would not limit reports and also add a smallish overhead to event logging. It is not decided if the alternative is to be implemented.
2017-05-18kernel: Add error_logger:limit_term/1Hans Bolinder
Calling error_logger:limit_term/1 before sending terms as events to the error_logger can be used for limiting the size of the messages. Doing so will not change the output, but potentially save memory. The Kernel variable error_logger_format_depth is used when limiting the size of terms.
2017-05-18stdlib: Add io_lib:limit_term/2Hans Bolinder
The term returned by io_lib:limit_term(Term, Depth) should return the same string if substituted for Term in io_lib:format("~P", [Term, Depth]) or io_lib:format("~W", [Term, Depth]).
2017-05-18Merge pull request #1466 from bjorng/bjorn/stdlib/safer-get_stacktraceBjörn Gustavsson
Call get_stacktrace/0 in a safer way
2017-05-18Merge pull request #1446 from hairyhum/crypto-duplicate-aes_gcmHans Nilsson
Remove duplicate aes_gcm from a list of ciphers
2017-05-18observer: Fix words to bytesDan Gudmundsson
heap and stack size in erlang:process_info/2 are reported as words not as bytes.
2017-05-17Merge branch 'ferd/kernel/shell-history-storage/OTP-14409'Dan Gudmundsson
* ferd/kernel/shell-history-storage/OTP-14409: Add persistence to history of the non-legacy shell add option 'quiet' to disk_log Fix type declaration for disk_log.hrl
2017-05-17Merge branch 'hans/ssh/cuddle_tests'Hans Nilsson
2017-05-17Merge branch 'hans/ssh/ext-info_bug_fixes'Hans Nilsson
2017-05-17ssh: update testcase in ssh_to_opensshHans Nilsson
2017-05-17ssh: test case didn't set preferred_algorithmsHans Nilsson
2017-05-17ssh: update property test for sign-algorithmHans Nilsson
2017-05-17ssh: fix end_per_suite in property testcaseHans Nilsson
2017-05-17ssh: disable rsa-sha2-* for clientsHans Nilsson
because there is a bug in the client verification code for those algorithms
2017-05-17ssh: select server-sig-algs from configured algos (preferred_algorithms)Hans Nilsson
2017-05-17ssh: Use 'server-sig-algs' for client's selection of algsHans Nilsson
2017-05-17ssh: fix broken preferred_algorithms and pref_public_key_algs optionsHans Nilsson
2017-05-17ssh: make ssh_algorithms_SUITE test public user and host keysHans Nilsson
Conflicts: lib/ssh/src/ssh_transport.erl
2017-05-17ssh: Enable rsa-sha2-*Hans Nilsson
Conflicts: lib/ssh/src/ssh_transport.erl
2017-05-17Merge branch 'dgud/observer/chunk-proc-info'Dan Gudmundsson
* dgud/observer/chunk-proc-info: observer: Fix alpabetic ordering when sorting on Name observer: Handle crash when node goes down observer: listen on correct notebook change observer: chunk process list info
2017-05-17Merge branch 'dgud/wx/fix-msvc-2015'Dan Gudmundsson
* dgud/wx/fix-msvc-2015: wx: Fix builds on VS-2017
2017-05-17Add persistence to history of the non-legacy shellFred Hebert
This patch adds a mechanism by which shell history gets stored persistently on disk and gets loaded whenever a new shell session begins. The log files are added to the user's cache directory, with multiple files in it, although the location is configurable. All Erlang instances on a given host will share the same log file. There are two hook points in group.erl that are used: when instantiating the buffer, where we fetch from disk, and when adding a line to the buffer (gets stored). This allows all shell instances to use the same base set of lines when loaded, but to keep their history separate after the fact. As lines are added as you go, a new shell session (with ^G -> s -> c) will have access to previous sessions' lines. The implementation makes use of the disk_log library with a rotating log in order to store data, and allow automated repairs. By default, the feature is disabled and must be turned on through OTP environment variable part of the kernel application. The options include: | Option | Accepted values | Default | Description | | ------------------------ | ----------------- |---------- | -------------------- | | shell_history | enabled, disabled | disabled | turn feature on/off | | shell_history_path | any string | user cache| where to put files | | shell_history_file_bytes | 51200..N bytes | 512kb | max data size (>50kb)| | shell_history_drop | ["q().", ...] | [] | blacklisted lines | A version header is added to the disk_log configuration, allowing changes in the storage format to be enacted in the future (i.e. adding segmentation by node name in the same file, or encoding) without conflict. Log rotation is used with multiple log files to ensure proper enforcement of resizing without too much data loss. Because disk_log does not allow to just flush bits of content on rewrite (it truncates any full file), we instead use a wrap log and try to divide the configured size into up to 10 log files so that every time we rotate a log, we lose only 10% of the data. This remains true for corrupted files that cannot fully be repaired. This many-logs-based approach in turn forces the use of a minimal log size for the `shell_history_file_bytes` configuration, since it has to be divided by 10. The shell history is not loaded for the `user` process which, despite running the group.erl module, does not actually require history as it mostly just forwards IO protocol information.
2017-05-17add option 'quiet' to disk_logFred Hebert
This option allows to suppress output of info_msgs to error_logger when recoverable errors are encountered in disk_log by setting the value to 'true'. Defaults to 'false', the backwards compatible behaviour.
2017-05-17Fix type declaration for disk_log.hrlFred Hebert
A specific type was given as an atom rather than an actual type defintion.
2017-05-17proc_lib: Don't call erlang:get_stacktrace/0 twiceBjörn Gustavsson
proc_lib calls erlang:get_stacktrace/0 twice, which is unnecessary, and potentially unsafe since there are calls to many functions in between. Any of the calls could potentially cause and catch an exception, invalidating the stacktrace. Only call erlang:get_stacktrace/0 once, and pass the result to the second place where it is needed.