aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2014-10-23Merge branch 'maint'Hans Bolinder
* maint: Fix rare race condition in Dets
2014-10-23Merge branch 'hb/stdlib/fix_dets_test' into maintHans Bolinder
* hb/stdlib/fix_dets_test: Fix rare race condition in Dets
2014-10-23Fix rare race condition in DetsHans Bolinder
The correction is due to the the evil testcase dets_SUITE:simultaneous_open(). If the process repairing a Dets file is killed (should normally never happen), and another process tries to repair the file, a temporary file from the first process could live on for a while, even after a successful call to file:delete(). This has only been seen on W-nd-ows, where it is a known problem. There are other ways to deal with the problem (rename the file; use some other filename), but we continue using one certain filename in order to be as backwards compatible as possible.
2014-10-23Merge branch 'maint'Hans Bolinder
* maint: debugger: clean up Common Test adaption
2014-10-23Merge branch 'hb/debugger/ct_line_cleanup' into maintHans Bolinder
* hb/debugger/ct_line_cleanup: debugger: clean up Common Test adaption
2014-10-23Merge branch 'hb/dialyzer/compiler_option_asm_removed'Hans Bolinder
* hb/dialyzer/compiler_option_asm_removed: dialyzer: remove recognition of the compiler option 'asm'
2014-10-22Merge branch 'maint'Bruce Yinhe
2014-10-22Merge branch 'vinoski/crashdump-sigusr1' into maintBruce Yinhe
* vinoski/crashdump-sigusr1: Clarify the use of SIGUSR1 for forcing crash dumps
2014-10-22Merge branch 'maint'Bruce Yinhe
2014-10-22Merge branch 'vinoski/clarify-drv-async-return' into maintBruce Yinhe
* vinoski/clarify-drv-async-return: Clarify docs for driver_async() return value
2014-10-22Merge branch 'maint'Bruce Yinhe
2014-10-22Merge branch 'HansN/prop_test_updates' into maintBruce Yinhe
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
2014-10-22Merge branch 'maint'Bruce Yinhe
2014-10-22Merge branch 'vinsentru/inets_ftp_extension' into maintBruce Yinhe
OTP-12255 * vinsentru/inets_ftp_extension: INETS FTP: EPSV and EPRT for IPv4 added
2014-10-22Merge branch 'maint'Marcus Arendt
2014-10-22Merge branch 'qrilka/patch-2/typo-fix' into maintMarcus Arendt
* qrilka/patch-2/typo-fix: Minor misprints correction
2014-10-21Merge branch 'egil/map-type-opt/OTP-12253'Björn-Egil Dahlberg
* egil/map-type-opt/OTP-12253: compiler: Type is_nonempty_list optimization compiler: Type map optimization
2014-10-21Merge branch 'maint'Peter Andersson
2014-10-21Merge branch 'peppe/common_test/crash_during_close' into maintPeter Andersson
* 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
2014-10-21dialyzer: remove recognition of the compiler option 'asm'Hans Bolinder
The compiler option 'asm' has been replaced by 'from_asm' in Erlang/OTP 18.0.
2014-10-21debugger: clean up Common Test adaptionHans Bolinder
The ct_line module was removed some releases ago.
2014-10-20Merge branch 'lukas/erts/non-blocking-shell'Lukas Larsson
* 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
2014-10-20Merge branch 'tuncer/compiler/finalize-asm-deprecation/OTP-12100'Björn Gustavsson
* tuncer/compiler/finalize-asm-deprecation/OTP-12100: compiler: finalize 18.x 'asm' deprecation
2014-10-20Merge branch 'maint'Björn Gustavsson
* maint: BER decoding: Don't allow primitives with indefinite lengths
2014-10-20Merge branch 'bjorn/asn1/primitive-indefinite-length/OTP-12205' into maintBjörn Gustavsson
* bjorn/asn1/primitive-indefinite-length/OTP-12205: BER decoding: Don't allow primitives with indefinite lengths
2014-10-20Merge branch 'maint'Bruce Yinhe
2014-10-20Merge branch 'adelzhang/fix_application_master_comment' into maintBruce Yinhe
* adelzhang/fix_application_master_comment: Fix obsolete comment
2014-10-17Clarify the use of SIGUSR1 for forcing crash dumpsSteve Vinoski
The crash_dump document mentions indirectly that delivering a SIGUSR1 to a running emulator process can force it to crash dump. Clarify that text to make it clear SIGUSR1 can be used for that purpose, and also add a similar note about using SIGUSR1 to the erl documentation.
2014-10-17Clarify docs for driver_async() return valueSteve Vinoski
The documentation for driver_async() still referred to the return value of the function as a "handle", which is no longer meaningful since driver_async_cancel() was deprecated and removed. Modify the documentation to simply indicate that the driver_async() return value will be -1 if it fails.
2014-10-17Solve memory consumption problemPeter Andersson
2014-10-16Fix io:columns/0 timeout when invoked via userJosé Valim
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
2014-10-16kernel,ssh: Add synchronous user_drv protocolLukas Larsson
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
2014-10-16erts: Make writing to non-tty fds non-blockingLukas Larsson
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.
2014-10-16erts: Make tty driver non-blockingLukas Larsson
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
2014-10-16Merge branch 'maint'Hans Nilsson
* maint: ssh: Fixes clause syntax error in ssh.appup.src
2014-10-16Merge branch 'hans/ssh/correct_appup' into maintHans Nilsson
* hans/ssh/correct_appup: ssh: Fixes clause syntax error in ssh.appup.src
2014-10-16ssh: Fixes clause syntax error in ssh.appup.srcHans Nilsson
2014-10-15INETS FTP: EPSV and EPRT for IPv4 addedVladimir Shmalko
2014-10-15Merge branch 'maint'Hans Nilsson
2014-10-15Merge branch 'hans/eldap/cuddle_with_tests' into maintHans Nilsson
2014-10-15Merge branch 'maint-17' into maintBruce Yinhe
Conflicts: OTP_VERSION
2014-10-14eldap: dynamically excludes unsupported ip versions.Hans Nilsson
2014-10-13Fix problem with buffered async io messages executed too latePeter Andersson
2014-10-13Merge branch 'maint'Sverker Eriksson
2014-10-13Merge branch 'sverk/port_get_data-race/OTP-12208' into maintSverker Eriksson
* 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
2014-10-13Merge branch 'maint'Bruce Yinhe
2014-10-13Merge branch 'archimed-shaman/leex_line_wrap_issue' into maintBruce Yinhe
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
2014-10-13Merge branch 'ia/ssl/seperate-clinet-server-session-table/OTP-11365'Ingela Anderton Andin
* ia/ssl/seperate-clinet-server-session-table/OTP-11365: ssl: Separate session cache for client and server
2014-10-13ssl: Separate session cache for client and serverIngela Anderton Andin
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.
2014-10-13Merge branch 'maint'Hans Nilsson