Age | Commit message (Collapse) | Author |
|
|
|
OTP-12256
* HansN/prop_test_updates:
Optimizations
ssh_eqc_encode_decode.erl compiles
Add timeout to a property test (Thanks John & Tobias @ QuviQ)
Reduce the total testing time for the properties to 20 seconds
No side effects in function arguments
Passing global var to QuickCheck statemachine
|
|
|
|
OTP-12255
* vinsentru/inets_ftp_extension:
INETS FTP: EPSV and EPRT for IPv4 added
|
|
|
|
* qrilka/patch-2/typo-fix:
Minor misprints correction
|
|
* egil/map-type-opt/OTP-12253:
compiler: Type is_nonempty_list optimization
compiler: Type map optimization
|
|
|
|
* peppe/common_test/crash_during_close:
Solve memory consumption problem
Fix problem with buffered async io messages executed too late
Don't generate weird exit if ct_logs has terminated before shut down
OTP-12159
|
|
* lukas/erts/non-blocking-shell:
Fix io:columns/0 timeout when invoked via user
kernel,ssh: Add synchronous user_drv protocol
erts: Make writing to non-tty fds non-blocking
erts: Make tty driver non-blocking
|
|
* tuncer/compiler/finalize-asm-deprecation/OTP-12100:
compiler: finalize 18.x 'asm' deprecation
|
|
* maint:
BER decoding: Don't allow primitives with indefinite lengths
|
|
* bjorn/asn1/primitive-indefinite-length/OTP-12205:
BER decoding: Don't allow primitives with indefinite lengths
|
|
|
|
* adelzhang/fix_application_master_comment:
Fix obsolete comment
|
|
|
|
This patch fixes an issue where io:columns/0 times out when invoked from
any application callback (or any supervisor/supervised module since the
group leader is inherited).
To reproduce the issue, one must simply call io:columns() from any
application callback. You will notice the process will block for 2 seconds
which then times out and returns {:error, :enotsup}.
Note this bug only happens inside the erlang shell (using -noshell or
escripts do not trigger the bug).
To fix the bug, it is important to understand how io requests flow from
application callback processes. Here are the steps followed:
1. Since io:columns/1 is timing out, the first step is to find out who is the
group leader for the application callback process. Using process_info/1, we
can see the parent process is the application_master and handles
io_requests by delegating them to the group_leader.
2. By inspecting the application_master process, we can find the group_leader
the message is sent is the registered process named user. The process is
running the group module which does handle io:columns/1 requests delegating
them to user_drv process.
3. The user_drv process does handle tty_geometry requests, except that a
clause above ends up short-circuiting all tty_geometry requests from the
user process.
This patch moves the user clause below the specific driver messages.
OTP-12241
|
|
Added a put_chars_sync to the protocol that can be used to
talk to user_drv and made group use it. This is needed in order
to guarantee that bytes has been pushed to the tty port when
doing something like this:
io:format("halting\n"),erlang:halt(0).
Before this change the halting message could be lost in the message
queue of the user_drv process, this is no longer possible.
This commit also fixes ssh_cli as that plugs itself in as a user_drv
process.
OTP-12240
|
|
If the fd_driver is given non-tty fds it will now use an async thread
instead of doing a blocking write. An example of a non-tty fd is the
fd used by stderr, but could be anything handed down to the driver.
|
|
Instead of using blocking call to fwrite, the tty driver
now uses non-blocking calls to writev and queues any output
data that cannot be written into the driver queue. Without
this change an stdout write could block an entire scheduler
if for some reason the pseudo tty on the other side does not
consume the output of the Erlang shell.
OTP-12239
|
|
* maint:
ssh: Fixes clause syntax error in ssh.appup.src
|
|
* hans/ssh/correct_appup:
ssh: Fixes clause syntax error in ssh.appup.src
|
|
|
|
|
|
|
|
|
|
Conflicts:
OTP_VERSION
|
|
|
|
|
|
|
|
* sverk/port_get_data-race/OTP-12208:
erts: Mend port_set_data with non-immed data for halfword VM
erts: Add test case for port_set_data and port_get_data
erts: Fix race between port_set_data, port_get_data and port termination
erts: Fix erlang:port_set_data/2 for non immediate data
|
|
|
|
OTP-12238
* archimed-shaman/leex_line_wrap_issue:
Fix line counting in token and tokens functions
Add unit test for string fun in leex test suite
Fix the line counting in string function
|
|
* ia/ssl/seperate-clinet-server-session-table/OTP-11365:
ssl: Separate session cache for client and server
|
|
Even though in the most common case an erlang node will not be both client
and server, it may happen (for instance when running the erlang ditribution
over TLS).
Also try to mitigate the affect of dumb clients that could cause a
very lagre session cache on the client side that can cause long delays
in the client. The server will have other means to handle a large
session table and will not do any select operations on it anyhow.
|
|
|
|
|
|
|
|
|
|
'ia/patch-17/ssh/user-interaction/OTP-11329/sftp-version/OTP-12227' into maint-17
* ia/patch-17/ssh/user-interaction/OTP-11329/sftp-version/OTP-12227:
ssh: Prepare for release
ssh: Add option sftp_vsn
ssh: Fix option user_interaction to work as expected
|
|
* ia/17-patch/ssl/empty-sni-from-server/OTP-12198:
ssl: Prepare for release
ssl: Servers may include an empty SNI-extension
|
|
|
|
|
|
* siri/observer/remove-doc-note/OTP-12078:
[observer] Remove note about R15B nodes in user guide
|
|
|
|
A note in the user guide says "Only R15B nodes can be observed". This
note was written because the observer_backend module did not exist in
earlier releases. It should have said "R15B or later". However, now
that we are on OTP-17, we don't think the note is necessary anymore so
it is now removed.
|
|
* maint:
dialyzer: do a minor re-factoring
dialyzer: Ignore ERL_COMPILER_OPTIONS when compiling
dialyzer: fix bug concerning compiler option 'warnings_as_errors'
|
|
* hb/dialyzer/warnings_as_errors/OTP-12225:
dialyzer: do a minor re-factoring
dialyzer: Ignore ERL_COMPILER_OPTIONS when compiling
dialyzer: fix bug concerning compiler option 'warnings_as_errors'
|
|
When password authentication is implemented with ssh
keyboard-interactive method and the password is already supplied, so
that we do not need to query the user, connections should
succeed even though the user_interaction option is set to false.
|
|
|