aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2015-12-15erts: Never abort in the forked childLukas Larsson
We always want the error to propagate up to the application when a child cannot be created.
2015-12-15erts: Mend ASSERT makro for erl_child_setupSverker Eriksson
when called by hash.c for example. We use ASSERT from sys.h but erl_child_setup implements its own erl_assert_error() as it doesn't link with sys.o.
2015-12-15erts: Allow enomem failures in port_SUITELukas Larsson
With the new forker implementation also enomem can be returned as an indicator that it is not possible to create more ports.
2015-12-15erts: iter_port sleep longer on freebsdLukas Larsson
2015-12-15erts: Allow one dangling fd if there is a gethost portLukas Larsson
2015-12-15erts: Only use forker StackAck on freebsdLukas Larsson
2015-12-15erts: It is not possible to exit the forker driverLukas Larsson
2015-12-15erts: Add forker StartAck for port start flowcontrolLukas Larsson
An acknowledgement of the Start command has to be managed as we have to make sure that packages are not dropped and also that the close calls do not happen too early.
2015-12-15erts: Fix large open_port arg segfault for win32Lukas Larsson
os_SUITE:large_output_command send a 10k large argument to open_port({spawn,""}) which was too small for the 2K buffer allocated for win32. The buffer is now dynamic and any size can be used.
2015-12-15erts: Fix memory leak at async open portLukas Larsson
When an async open port fails early, it would sometimes leak memory.
2015-12-15kernel: Remove cmd server for unix os:cmdLukas Larsson
Since we no longer to vfork in the emulator there is no need to serialize the os:cmd calls through a central command server. This greatly decreases the complexity of this code and should make it fast+more scalable. OTP-13089
2015-12-15erts: Add testcase for huge port environmentLukas Larsson
2015-12-15erts: Move os_pid to port hash to child setupLukas Larsson
Had to move the hashing because of a race that can otherwise happen where a new os_pid value was inserted into the hash before the previous value had been removed. Also replaced the protocol inbetween erts and child setup to be a binary protocol. This was done in order to deal with the varying size of Eterm.
2015-12-15erts: Handle all EINTR and EAGAIN cases in child setupLukas Larsson
2015-12-15erts: Make child_setup work with large environmentsLukas Larsson
2015-12-15erts: Fix forker driver ifdefs for win32Lukas Larsson
2015-12-15erts: Fix uds socket handling for os xLukas Larsson
OS X is very strict in what it requires of you and also gives strange error codes for some errors. In this commit we remap EMSGSIZE to EMFILE and also precisely tune the amount of data we send on the socket so that we can recv only that data. If we try to recv more, recvmsg fails with EPIPE if the remote end has been closed.
2015-12-15erts: Fix dereferencing of unaligned integer for sparcLukas Larsson
2015-12-15erts: Flatten too long io vectors in uds writeLukas Larsson
2015-12-15erts: Add fd count test for spawn_driverLukas Larsson
2015-12-15erts: Create forker process for spawn driverLukas Larsson
Instead of forking from the beam process, we create a separate process in which all forks are done. This has several advantages: 1) performance: * don't have to close all fd's in the world * fork only has to copy stuff from a small process * work is done in a completely seperate process * a 3x performance increase has been measured, can be made even greater (10x) if we cache the environment in child setup 2) stability * the exec is done in another process than beam, which means that if the file that we exec to is on an nfs that is not available right now we will not block a scheduler until the nfs returns. 3) simplicity * don't have to deal with SIGCHLD in the erts Unfortunately, this solution also implies some badness. 1) There will always be a seperate process running together with beam on unix. This could be confusing and undesirable. 2) We have to transfer the entire environment to child_setup for each command. OTP-13088
2015-12-15erts: Move sys drivers to another fileLukas Larsson
2015-12-15erts: Change name of child_setup to erl_child_setupLukas Larsson
2015-12-15erts: Rename sys driver structsLukas Larsson
2015-12-15erts: Refactor out erts functions from hashLukas Larsson
2015-12-15erts: Bump driver minor versionLukas Larsson
2015-12-15erts: Add erl_drv_set_pidLukas Larsson
OTP-13087
2015-12-15erts: Add support for asynchronous open_portLukas Larsson
OTP-13086
2015-11-06Merge branch 'maint'Hans Nilsson
* maint: ssh: changes after doc review ssh: Document pwdfun ssh: make corrections of keyboard-interactive client ssh: enable users to give option keyboard_interact_fun ssh: pwdfun/4 and simple tests
2015-11-06Merge branch 'hans/ssh/pwdfun/OTP-13055' into maintHans Nilsson
* hans/ssh/pwdfun/OTP-13055: ssh: changes after doc review ssh: Document pwdfun ssh: make corrections of keyboard-interactive client ssh: enable users to give option keyboard_interact_fun ssh: pwdfun/4 and simple tests Conflicts: lib/ssh/doc/src/ssh.xml
2015-11-06Merge branch 'maint'Hans Nilsson
* maint: ssh: correct a bad doc xref public_key: renamed priv/ssh_moduli -> priv/moduli ssh, public_key: updates after doc review ssh: changes after doc review ssh: extend 'dh_gex_limits' to server side ssh: option dh_gex_groups with tag ssh_moduli_file ssh, public_key: random selection of diffie-hellman moduli
2015-11-06Merge branch 'hans/ssh/random_modulus/OTP-13054' into maintHans Nilsson
* hans/ssh/random_modulus/OTP-13054: ssh: correct a bad doc xref public_key: renamed priv/ssh_moduli -> priv/moduli ssh, public_key: updates after doc review ssh: changes after doc review ssh: extend 'dh_gex_limits' to server side ssh: option dh_gex_groups with tag ssh_moduli_file ssh, public_key: random selection of diffie-hellman moduli
2015-11-05ssh: correct a bad doc xrefHans Nilsson
2015-11-05public_key: renamed priv/ssh_moduli -> priv/moduliHans Nilsson
2015-11-05ssh, public_key: updates after doc reviewHans Nilsson
2015-11-05Merge branch 'maint'Henrik Nord
2015-11-05Merge branch 'weiss/case-insensitive-lookups' into maintHenrik Nord
* weiss/case-insensitive-lookups: inet_res: Make host name lookups case-insensitive OTP-13083
2015-11-04Merge branch 'sverk/binary_split_bif'Sverker Eriksson
OTP-13082 * sverk/binary_split_bif: erts: Minor refactor for binary find BIF backend erts: Refactor BIF for binary:match,matches,split erts: Refactor backend of binary:split erts: Replace 0 with THE_NON_VALUE stdlib: Add BIF option 'trim_all' to binary:split/3 stdlib: Add BIF binary:split/2 and binary:split/3 Conflicts: bootstrap/lib/stdlib/ebin/binary.beam
2015-11-04erts: Minor refactor for binary find BIF backendAndrew Bennett
* Use NULL instead of THE_NON_VALUE for non-Eterm variable. * Add BinaryFindState_bignum struct to avoid unnecessary type casting.
2015-11-04erts: Refactor BIF for binary:match,matches,splitAndrew Bennett
with an common do_binary_find() used by match, matches and split.
2015-11-04erts: Refactor backend of binary:splitSverker Eriksson
to reduce code volume.
2015-11-04erts: Replace 0 with THE_NON_VALUESverker Eriksson
2015-11-04stdlib: Add BIF option 'trim_all' to binary:split/3Andrew Bennett
2015-11-04stdlib: Add BIF binary:split/2 and binary:split/3Andrew Bennett
2015-11-04Merge branch 'maint'Hans Bolinder
* maint: [erl_docgen] Correct documentation [dialyzer] Correct documentation [hipe] Correct documentation [test_server] Correct documentation [tools] Correct documentation [erts] Correct documentation [stdlib] Correct documentation [kernel] Correct documentation Conflicts: lib/stdlib/doc/src/erl_scan.xml
2015-11-04Merge branch 'hb/correct_doc_tags' into maintHans Bolinder
* hb/correct_doc_tags: [erl_docgen] Correct documentation [dialyzer] Correct documentation [hipe] Correct documentation [test_server] Correct documentation [tools] Correct documentation [erts] Correct documentation [stdlib] Correct documentation [kernel] Correct documentation
2015-11-04[erl_docgen] Correct documentationHans Bolinder
Fix mistakes found by 'xmllint'.
2015-11-04[dialyzer] Correct documentationHans Bolinder
Fix mistakes found by 'xmllint'.
2015-11-04[hipe] Correct documentationHans Bolinder
Fix mistakes found by 'xmllint'.
2015-11-04[test_server] Correct documentationHans Bolinder
Fix mistakes found by 'xmllint'.