Age | Commit message (Collapse) | Author |
|
* bjorn/dialyzer/test-cases:
small_SUITE: Update warnings for port functions
Cope with removed support for packages
mnesia: Update dialyzer warning
|
|
* sverk/crypto-hmac-enhancements/OTP-10640:
crypto: Add RFC-4231 test vectors for output truncation
crypto: Add test cases for the generic hmac interface in the RFC-4231 tests
crypto: Add RFC-2202 test vectors for HMAC-MD5 and HMAC-SHA1
crypto: Provide a generic interface for HMAC generation
crypto: Document all types currently available for hmac_init
|
|
* ia/ssl/format-to-print:
ssl: ct:format should be ct:print
|
|
|
|
* fdm/file-allocate/OTP-10680:
Update preloaded prim_file.beam
erts: Fix xcomp configure for fallocate
Add file:allocate/3 operation
|
|
|
|
Packages were removed in 34d865a7dfdb33ee1e69fc28885f68baeeadfd98.
|
|
Commit 0c6fe3713b9e2d6497cbfe9275d1170cefb5f169 updated the spec for
sys:handle_system_msg/5.
|
|
* ia/ssl/ct-tests:
ssl: CTify test cases
|
|
|
|
* pn/ansi-console/OTP-10678:
Support ANSI in the console
|
|
* ia/ssh/UG-correction:
ssh: Corrected misunderstanding
|
|
SCP is a subsystem not an example of a one time execution channel.
|
|
* ia/ssl/gen-tcp-reusesaddr:
ssl: Add test for gen_tcp with reuseaddr as reference
|
|
* fdm/fix_fd_leak_async_thread_pool/OTP-10677:
Fix fd leak when using async thread pool
|
|
|
|
* Default to 'no' for finding a working fallocate
|
|
* bjorn/asn1/extension-addition-groups/OTP-10664:
Fix a bug for multiple extension addition groups
|
|
* rn/public_key/fix-doc-cert-records/OTP-10670:
Fix subjectPublicKeyInfo type comment
|
|
* bjorn/asn1/minor-fixes: (21 commits)
Always inline decoding of open types
Eliminate code duplication
per: Slightly optimize encoding of fixed OCTET STRINGs
per: Fix encoding of OCTET STRINGs with fixed length of 256 or more
Remove support for the {Typename,Value} notation in encoding
asn1ct_parser2: Let synonyms share parsing code
Add a test case for constraint equivalence
Make .abs file consultable
Fix a bug in skipping of extensions
asn1rt_uper_bin: Correct incorrect skipping of extensions
asn1 doc: Remove a reference to a section that has been removed
Simplify testConstraints by introducing helper functions
Simplify testCompactBitString by introducing roundtrip functions
Simplify testEnumExt by introducing a roundtrip/2 function
Simplify testChoExternal by introducing a roundtrip/2 function
Simplify testChoRecursive by introducing a roundtrip/2 function
Simplify testSeqExtension.erl by introducing a roundtrip/2 function
Simplify testChoExtension by introducing a roundtrip/2 function
Simplify testSetOptional by introducing a roundtrip/2 function
testSetOptional: Correct test case for decoding of corrupt data
...
|
|
* siri/cross-cover/OTP-9870:
[test_server] Don't use print/3 in cross_cover_analyse
[common_test] Add documentation for cross cover analysis
[common_test] Add test case for cross cover mechanism
[test_server] Update documentation about cross cover
[test_server] Add test of code cover mechanism
[test_server,common_test] Fix cross cover mechansim
|
|
|
|
* bjorn/remove-packages/OTP-10348: (22 commits)
kernel: Remove the packages module
kernel: Eliminate use of packages in code and code_server
edoc: Remove support for packages
syntax_tools: Remove support for packages
reltool: Remove support for packages
test_server: Remove support for packages
sasl: Remove support for packages
debugger: Remove support for packages
c: Remove support for packages
filename: Remove support for packages
erl_pp_SUITE: Remove test of packages
shell: Remove support for packages
erl_parse: Remove support for packages
qlc: Remove support for packages
erl_eval: Remove support for packages
erl_expand_records: Remove support for packages
erl_lint: Remove support for packages
compiler: Remove support for packages
erts: Remove the packages aliases for BIFs
erl_expand_records_SUITE: Eliminate use of packages
...
|
|
* egil/fix-os_mon-dialyzer:
os_mon: Remove superfluous match clause
|
|
* egil/ignore-core:
test: Ignore cores in debug build for crash dumps
|
|
This operation allows pre-allocation of space for files.
It succeeds only on systems that support such operation.
The POSIX standard defines the optional system call
posix_fallocate() to implement this feature. However,
some systems implement more specific functions to
accomplish the same operation.
On Linux, if the more specific function fallocate() is
implemented, it is used instead of posix_fallocate(),
falling back to posix_fallocate() if the fallocate()
call failed (it's only supported for the ext4, ocfs2,
xfs and btrfs file systems at the moment).
On Mac OS X it uses the specific fcntl() operation
F_PREALLOCATE, falling back to posix_fallocate() if
it's available (at the moment Mac OS X doesn't provide
posix_fallocate()).
On any other UNIX system, it uses posix_fallocate() if it's
available. Any other system not providing this system call
or any function to pre-allocate space for files, this operation
always fails with the ENOTSUP POSIX error.
|
|
When using the async thread pool, if an erlang process
asks to open a file and it gets shutdown/killed while
the file:open/2 call hasn't returned, it's possible to
leak a file descriptor against the target file.
This happens because when the file driver is stopped
(file_stop() function is called), an async thread is
executing, about to execute, or executed already the
invoke_open() function. After file_stop() is called,
the file_async_ready() function will not run, and this
function is responsible for setting desc->fd with the
file descriptor that invoke_open() got. The file_stop()
call closes desc->fd if it refers to a valid file
descriptor, which is not the case here, because this
function was called before file_async_ready() could
run.
This leak is easily reproducile in a GNU/Linux system
using the following test code:
-module(t).
-export([t/1]).
t(N) ->
Pid = spawn_link(fun() ->
process_flag(trap_exit, true),
loop(N)
end),
Ref = erlang:monitor(process, Pid),
receive {'DOWN', Ref, _, _, _} ->
ok
end.
loop(0) ->
ok;
loop(N) ->
Name = integer_to_list(N),
Server = self(),
Pid = spawn(fun() ->
Server ! continue,
{ok, FdW} = file:open(Name, [raw, write]),
{ok, FdR} = file:open(Name, [raw, read]),
% Optional close calls, with or without them
% it makes no difference.
%ok = file:close(FdW),
%ok = file:close(FdR),
ok
end),
receive continue -> ok end,
exit(Pid, shutdown),
loop(N - 1).
Running this code with a few iterations is enough to very often
notice, with the lsof command, that the beam.smp process is holding
forever file descriptors open. This issue doesn't happen if the
async thread pool is not used.
Example:
$ erl +A 4
Erlang R15B03 (erts-5.9.3) [source] [64-bit] [smp:4:4] [async-threads:4] [hipe] [kernel-poll:false]
Eshell V5.9.3 (abort with ^G)
1> c(t).
{ok,t}
2> os:getpid().
"31975"
3> t:t(20).
ok
In a separate shell:
$ lsof -p 31975
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
beam.smp 31975 fdmanana cwd DIR 8,18 22736896 32563204 /home/fdmanana/git/hub/otp/tmp
beam.smp 31975 fdmanana rtd DIR 8,1 4096 2 /
beam.smp 31975 fdmanana txt REG 8,1 7600263 1835126 /opt/r15b03/lib/erlang/erts-5.9.3/bin/beam.smp
beam.smp 31975 fdmanana mem REG 8,1 7220736 2497283 /usr/lib/locale/locale-archive
beam.smp 31975 fdmanana mem REG 8,1 10280 2505021 /usr/lib/libsctp.so.1.0.11
beam.smp 31975 fdmanana mem REG 8,1 1811128 917795 /lib/x86_64-linux-gnu/libc-2.15.so
beam.smp 31975 fdmanana mem REG 8,1 31752 917803 /lib/x86_64-linux-gnu/librt-2.15.so
beam.smp 31975 fdmanana mem REG 8,1 135366 917799 /lib/x86_64-linux-gnu/libpthread-2.15.so
beam.smp 31975 fdmanana mem REG 8,1 159200 921249 /lib/x86_64-linux-gnu/libtinfo.so.5.9
beam.smp 31975 fdmanana mem REG 8,1 1030512 917962 /lib/x86_64-linux-gnu/libm-2.15.so
beam.smp 31975 fdmanana mem REG 8,1 14768 917702 /lib/x86_64-linux-gnu/libdl-2.15.so
beam.smp 31975 fdmanana mem REG 8,1 149280 917974 /lib/x86_64-linux-gnu/ld-2.15.so
beam.smp 31975 fdmanana 0u CHR 136,1 4 /dev/pts/1
beam.smp 31975 fdmanana 1u CHR 136,1 4 /dev/pts/1
beam.smp 31975 fdmanana 2u CHR 136,1 4 /dev/pts/1
beam.smp 31975 fdmanana 3r FIFO 0,8 1298297 pipe
beam.smp 31975 fdmanana 4w FIFO 0,8 1298297 pipe
beam.smp 31975 fdmanana 5r FIFO 0,8 1298298 pipe
beam.smp 31975 fdmanana 6w FIFO 0,8 1298298 pipe
beam.smp 31975 fdmanana 7w REG 8,18 0 32564173 /home/fdmanana/git/hub/otp/tmp/20
beam.smp 31975 fdmanana 8w REG 8,18 0 32564176 /home/fdmanana/git/hub/otp/tmp/16
beam.smp 31975 fdmanana 9w REG 8,18 0 32564177 /home/fdmanana/git/hub/otp/tmp/15
beam.smp 31975 fdmanana 10w REG 8,18 0 32564179 /home/fdmanana/git/hub/otp/tmp/12
beam.smp 31975 fdmanana 11w REG 8,18 0 32564180 /home/fdmanana/git/hub/otp/tmp/11
beam.smp 31975 fdmanana 12w REG 8,18 0 32564205 /home/fdmanana/git/hub/otp/tmp/10
beam.smp 31975 fdmanana 13w REG 8,18 0 32564182 /home/fdmanana/git/hub/otp/tmp/8
beam.smp 31975 fdmanana 14w REG 8,18 0 32564183 /home/fdmanana/git/hub/otp/tmp/7
beam.smp 31975 fdmanana 15w REG 8,18 0 32564186 /home/fdmanana/git/hub/otp/tmp/3
|
|
* ml/crypto/add-ripemd160-digest/OTP-10667:
fix crypto ripemd160 tests to use hash_init family
fix ripemd160 to use hash_init family and add documentation
fix missing defines for RIPEMD160_CTX_LEN and RIPEMD160_LEN
add ripemd160 support to crypto
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|