Age | Commit message (Collapse) | Author |
|
* hasse/unicode_atoms/OTP-14285:
compiler: Handle (bad) Unicode parse transform module names
kernel: Improve handling of Unicode filenames
stdlib: Handle Unicode atoms in ms_transform
stdlib: Improve Unicode handling of the Erlang parser
stdlib: Handle unknown compiler options with Unicode
stdlib: Handle Unicode macro names
stdlib: Correct Unicode handling in escript
dialyzer: Improve handling of Unicode
parsetools: Improve handling of Unicode atoms
stdlib: Handle Unicode atoms when formatting stacktraces
stdlib: Add more checks of module names to the linter
stdlib: Handle Unicode atoms better in io_lib_format
stdlib: Handle Unicode atoms in c.erl
|
|
'raimo/kernel/inet_ntoa_1-IPv6-lowercase/ERIERL-20/ERL-429/OTP-13006'
* raimo/kernel/inet_ntoa_1-IPv6-lowercase/ERIERL-20/ERL-429/OTP-13006:
Accept IPv6 address %suffixes when parsing
Adjust inet:ntoa/1 to RFC5952, but not deeper
Update inet:ntoa according to modern RFCs
|
|
This only implements decimal suffixes, and furthermore only with
a leading "0". A complete implementation would probably allow one
and probably two digit suffixes without.
But what primarily is missing is translating interface names to
and from interface indexes.
This also only implements the parsing, and uses the FreeBSD trick of
squeezing in the Scope Id in the second 16-bit word of the fe80::/64
or ff02:/64 address prefix. But inet_drv is not prepared to handle
this word, so it might only work on FreeBSD, not being supported even
there... So inet_drv needs to handle this too.
|
|
|
|
There are a multitude of RFC:s that point to each other and some of them
suggest different addresses with IPv4 suffixes. Use the IPv4 suffix
text representation only for the old well known ::a.b.c.d and
::ffff:a.b.c.d prefixes. The others seems to be moving targets.
|
|
* lukas/erts/sendfile_sunos_fix/OTP-14424:
erts: Fix sendfile closeduring scenario on sunos
|
|
On Solaris, giving a too long sfv_len results in an
EINVAL error, but data is still transmitted and len is
correctly. So we translate this to a success with that
amount of data sent. This may hide some other errors
that causes EINVAL, but it is the best we can do for now.
|
|
* lukas/erts/20_minor_fixes:
kernel: Iterate for correct time in os_SUITE:perf_counter
|
|
|
|
|
|
This reverts commit eaf8ca41dfa4850437ad270d3897399c9358ced0.
|
|
|
|
Leaving the cover server running could cause problems in other
test cases.
|
|
Because this test suite did not cleanup after itself,
the error_logger_warn_SUITE:file_utc failed to start its node
that it needed for the test.
|
|
* lukas/kernel/ipv6_skip_tc_fixes:
kernel: Skip ipv6 tcs when cpiv6 is disabled
|
|
* lukas/kernel/distribution_early_reject/OTP-14426:
kernel: Add early reject of invalid node names
|
|
kernel: inet - fix invalid IPv4-mapped-address examples
|
|
|
|
* lukas/doc/extend-secure-distr-warn/OTP-14425:
otp: Extend secure distribution docs warnings
|
|
Warnings have been added to the relevant documentation
about not using un-secure distributed nodes in exposed
environments.
|
|
|
|
For some reason doing a gen_udp:open(0, [inet6,{ipv6_v6only,true}])
works on some systems where ipv6 is disabled. So instead we
explicitly require the localhost ip to do the test at which seems
to work better.
ipv6 was disabled in sysctl using the line net.ipv6.conf.all.disable_ipv6=1
when this behaviour was found.
|
|
* hasse/kernel/global_read_concurrency/OTP-14419:
kernel: Create table 'global_names' with read_concurrency
|
|
* 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
|
|
Measurements showed contention on one of the ETS tables created by the
'global' module.
|
|
* 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
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
A specific type was given as an atom rather than an actual type
defintion.
|
|
|
|
'modeules' -> 'modules'
Introduced in 3edc6dbf8f150bb6ba7c800ed5cc379771f8b279 (present in 20.0-rc1, but
not in the 19 release series).
|
|
This reverts commit dc57404252c47520f352834ad9be45ad684f96c9.
|
|
|
|
|
|
* IPv6 address FFFF::192.168.42.2 is an invalid form as an IPv4-mapped address.
This should be fixed as ::FFFF:192.168.42.2.
The assigned address block is ::ffff:0:0/96.
See RFC6890 Table 20 in the Section 2.2.2 for the further details.
And for this IPv4-mapped address use *only*,
the 32bit LSB of the IPv6 address can be written
with the respective IPv4 address.
See RFC4291 Section 2.2 Form 3 for the further details.
|
|
|
|
* zandra/kernel/nodenames/OTP-13805:
kernel: Do not allow unicode in nodenames
|
|
Verify that unicode isn't used in a node name and logi an info
message if it is. Filter the head part of the name a bit harder
to work with epmd.
|
|
|
|
bind to device is needed to properly support VRF-Lite under
Linux (see [1] for details).
[1]: https://www.kernel.org/doc/Documentation/networking/vrf.txt
|
|
* lukas/erts/20_minor_fixes:
erts: Rebuild etc executables if config.h changes
erts: Fix new gcc warning in check io
kernel: Add mem check to prim_file:large_write tc
erts: Fix two compiler warnings on OS X
erts: Fix erts_debug:df function info output
erts: Get rid of some unused function warnings on os x
|
|
|
|
* sverker/remove-latin1-atom-encoding:
kernel: Fix erl_distribution_wb_SUITE:whitebox
kernel: Remove pg2_SUITE:compat
erts: Remove fun_r13_SUITE
stdlib: Remove test cases for R12 io protocol
kernel: Make DFLAG_UTF8_ATOMS mandatory
kernel: Rewrite distribution flag verification
tools: Update assumptions in lcnt about external atom format
stdlib: Tweak beam_lib_SUITE whitebox assumptions
orber: Remove hard dependency to external atom format
kernel: Try mend disk_log whitebox tests
erts: Mark latin1 atom encoding as deprecated
jinterface: Do not generate atoms on old latin1 external format
erl_interface: Do not generate atoms on old latin1 ext format
erts: Do not generate atoms on old latin1 external format
erts: Fix faulty ASSERT for failed dec_term
|
|
* bjorn/cuddle-with-tests:
Ensure code_SUITE:on_load_embedded/1 does not leak links
|
|
* egil/kernel/refactor-supervisor/OTP-14315:
Update primary bootstrap
kernel: Refactor supervision tree
|
|
Use maps in definitions to make them more readable.
|
|
* lukas/kernel/gen_tcp_close_docs:
kernel: Expand gen_tcp:close docs with send text
|
|
This commit attempts to clarify some of the guarantees given by
the TCP standard when issuing close. This is quite a complex
topic so there are probably corner cases still left, but this
at least tells the user that things can go wrong when doing
a close.
|