Age | Commit message (Collapse) | Author |
|
|
|
|
|
* lukas/erts/fix_inet_multitimer_cleanup/OTP-15536:
erts: Fix cleanup of the inet MultiTimer
|
|
|
|
|
|
|
|
* raimo/test-cuddling:
Rewrite to work for stream connection
Update Linux version for pktoptions TTL
|
|
|
|
A copy has to be made of the message as there is
a trace token. There was a bug where the actual
message was incorrectly modified even if it was a
literal.
|
|
* sverker/erts/sendfile-error-bug/ERL-784/OTP-15461:
erts: Fix hanging sendfile bugs when socket closes unexpectedly
erts: Fix unexpected inet_reply message from failing file:sendfile
erts: Fix bug in sendfile for active socket
|
|
* siri/logger/std-recreate-file-if-rotated/OTP-15469:
[logger] Re-create log file if deleted
|
|
into maint
* siri/logger/unexpected-exit-from-simple/ERL-788/OTP-15466:
[logger] Unlink simple handler before terminating
|
|
* raimo/test-cuddling:
Parallel stress test strong_rand_bytes
Update OS version numbers
|
|
This is an update to logger_std_h, which makes it play well with tools
like logrotate.
|
|
Correct typo in logger formatter docs
|
|
* maint-21:
Updated OTP version
Prepare release
|
|
|
|
'sverker/kernel/net_kernel-failed-accept_pending/ERL-781/OTP-15438' into maint-21
* sverker/kernel/net_kernel-failed-accept_pending/ERL-781/OTP-15438:
kernel: Fix bug in net_kernel for connection attempt from self
|
|
This avoids an unexpected EXIT message with reason normal beeing
printed from logger_server when the simple handler is replaced. It
will still be printed if it exists unexpectedly.
|
|
* siri/logger/ets-read-concurrency/ERL-782/OTP-15453:
[logger] Add read_concurrency to options for logger ets table
|
|
* siri/logger/refactor-built-in-handlers:
[logger] Write asynchronously to disk log
[logger] Add statistics counter for drops due to message bursts
[logger] Further refactor built-in handlers
[logger] Move common handler code to logger_h_common
|
|
A failing file:sendfile call would often send a message
{inet_reply, Port, {error, Reason}} that would pollute the mailbox
of the calling process.
TCP_REQ_SENDFILE has its own reply messages format
{sendfile, _, _} and does not expect an inet_reply message.
Solution: Suppress inet_reply error message if TCP_ADDF_SENDFILE
is set.
|
|
driver_select() was called after port had been killed
by tcp_inet_sendfile() calling tcp_send_error().
|
|
|
|
|
|
|
|
'sverker/kernel/net_kernel-failed-accept_pending/ERL-781/OTP-15438' into maint
* sverker/kernel/net_kernel-failed-accept_pending/ERL-781/OTP-15438:
kernel: Fix bug in net_kernel for connection attempt from self
|
|
net_kernel crashed due to invalid return from handle_info.
Could only happen if erts_internal:new_connection fails
due to non-atom Node or if Node is the own node name.
|
|
|
|
Fix the default implementation of address_please
|
|
* raimo/tcp-close-while-send/maint/ERL-561/OTP-12242:
Write test case
Fix hanging gen_tcp send vs close race
Conflicts:
erts/preloaded/ebin/prim_inet.beam
|
|
|
|
This commit updates logger_disk_log_h to write most log events
asynchronlously (disk_log:balog/2), but synchronously
(disk_log:blog/2) on every 20th event in the same way as logger_std_h
does. This is for efficiency reasons.
|
|
|
|
|
|
There was a lot of duplicated code in logger_std_h and
logger_disk_log_h. Most of this is now moved to logger_h_common, which
now also serves as the gen_server callback.
|
|
Forward set/update indicator to handler callback changing_config
OTP-15364
|
|
* igor/tcp-nopush-ERL-698/OTP-15357:
"cork" tcp socket around file:sendfile
Add nopush TCP socket option
|
|
|
|
* maint-21:
Updated OTP version
Prepare release
erts: Fix UNC path handling on Windows
erts: Fix a compiler warning
eldap: Fix race at socket close
Fix bug for sockopt pktoptions on BSD
erts: Fix memory leak on file read errors
|
|
* john/erts/fix-unc-paths-windows/OTP-15333/ERL-737:
erts: Fix UNC path handling on Windows
erts: Fix a compiler warning
|
|
* raimo/BSD-sockopt-pktoptions/ERIERL-187/OTP-14297:
Fix bug for sockopt pktoptions on BSD
|
|
RaimoNiskanen/raimo/getifaddrs-netns/ERIERL-189/OTP-15121
Implement {netns,NS} option for inet:getifaddrs/1 and friends
|
|
This is unlikely to be the last of the path problems seen after
OTP 21, and I'm starting to regret my decision to unconditionally
use long paths. The idea to hit all long-path problems all the time
was good in theory as it makes such bugs far more visible, but
there just aren't enough people who test pre-release versions on
Windows, making this the world's slowest game of whack-a-mole.
|
|
This translates to TCP_CORK on Linux and TCP_NOPUSH on
BSD.
In effect, this acts as super-Nagle: no partial TCP segments
are sent out until this option is turned off. Once turned off,
all accumulated unsent data is sent out immediately. The latter
is *not* the case on OSX, hence the implementation ignores
"nopush" on OSX to reduce confusion.
|
|
|
|
This function is called when a logger API function for fetching
handler configuration is called. The point is to allow the handler to
remove internal data fields that it might have stored in the
configuration database, before returning the handler configuration to
the caller.
An example of such internal data are the 'handler_pid' and 'mode_tab'
fields that logger_std_h and logger_disk_log_h store in their
configuration maps.
|
|
The new parameter to this function, SetOrUpdate, indicates how
unspecified configuration data fields shall be set. The rule is that
if SetOrUpdate equals set, then default values shall be used, and if
SetOrUpdate equals update, then existing configuration values shall be
used. Consequently, these examples now apply to logger_std_h and
logger_disk_log_h:
set_handler_config(default, config, #{sync_mode_qlen => 20}) sets the
value of sync_mode_qlen to 20, and resets all other (writable) fields
in the config map to their default values.
update_handler_config(default, config, #{sync_mode_qlen => 20}) sets
the value of sync_mode_qlen to 20, and leaves all other fields in the
config map unchanged.
|
|
This function is similar to set_handler_config/3, but calls the handler
callback changing_config/3 with the first parameter SetOrUpdate=update.
|
|
Also implement the same option for the legacy undocumented functions
inet:getif/1,getiflist/1,ifget/2,ifset/2.
The arity 1 functions had before this change got signatures that
took a socket port that was used to do the needed syscall, so now
the signature was extended to also take an option list with the
only supported option {netns,Namespace}. The Socket argument
variant remains unsupported.
For inet:getifaddrs/1 the documentation file was changed to old
style function name definition so be able to hide the Socket
argument variant that is visible in the type spec.
The arity 2 functions had got an option list as second argument.
This list had to be partitioned into one list for the namespace
option(s) and the other for the rest.
The namespace option list was then fed to the already existing
namespace support for socket opening, which places the socket
in a namespace and hence made all these functions that in
inet_drv.c used getsockopt() work without change.
The functions that used getifaddrs() in inet_drv.c had to be
changed in inet_drv.c to swap namespaces around the
getifaddrs() syscall. This functionality was separated into
a new function call_getifaddrs().
|