Age | Commit message (Collapse) | Author |
|
* lukas/erts/fix_neg_of_int64_min/OTP-12097:
erts: Fix neg int overflow when sint is min size
|
|
* nox/clang-ubsan/OTP-12097:
Properly handle SINT_MIN in small_to_big()
Use offsetof() in io.c
|
|
* rickard/nosuspend-bug/OTP-12082:
Fix build of test port program
Update Makefile.src
Add async_ports test
Fix abort of nosuspend-tasks in erts_port_task_schedule()
|
|
When INT64_MIN is the value of a Sint64 we have to first cast it to
an Uint64 before negating it. Otherwise we get an integer overflow
which is undefined behaviour and in gcc 4.9 this results in -0 instead
of -9223372036854775808 in gcc 4.8.
|
|
* lukas/erts/malloc_failure_errors/OTP-12085:
erts: Print error reason when malloc fails
|
|
|
|
The sha of the original change is 52810718b
|
|
|
|
|
|
|
|
The counter for the amount of outstanding data in the port queue
became inconsistent when aborting nosuspend-signals in
erts_port_task_schedule(). This since the counter was subtracted
by the data size of the signal although the data size had never
been added to it. This inconsistency caused the port queue to
remain in a busy state forever.
|
|
Conflicts:
erts/doc/src/notes.xml
erts/preloaded/ebin/prim_inet.beam
erts/vsn.mk
lib/kernel/doc/src/notes.xml
lib/kernel/vsn.mk
|
|
Inet close must remove fd from select/poll without closing the fd.
|
|
|
|
|
|
|
|
As there is no overflow for signed integers, -SINT_MIN is undefined behaviour
and the cast to unsigned needs to happen before negation. SINT_MIN denotes the
minimum value that can be stored in the Sint type.
beam/big.c:1512:6: runtime error: negation of -9223372036854775808 cannot be represented in type 'Sint' (aka 'long'); cast to an unsigned type to negate this value to itself
|
|
This silences the following UBSan errors:
beam/io.c:7131:27: runtime error: member access within null pointer of type 'ErlDrvSysInfo'
beam/io.c:7140:20: runtime error: member access within null pointer of type 'ErlDrvSysInfo'
beam/io.c:7166:20: runtime error: member access within null pointer of type 'ErlDrvSysInfo'
beam/io.c:7174:20: runtime error: member access within null pointer of type 'ErlDrvSysInfo'
|
|
|
|
* nox/fix-perms:
Fix permissions of some files in the repository
|
|
* rickard/binary_to_term_error/OTP-11931:
Replace erlang:binary_to_term() Erlang wrappers
Conflicts:
erts/preloaded/ebin/erts_internal.beam
|
|
* rickard/yielding-binary-list-conversions/OTP-11888:
Add test-case comparing old and new implementations
Make binary BIFs converting from lists yield on large input
Make binary BIFs converting to lists yield on large input
|
|
* rickard/disable-gc-fix/OTP-11887:
Do not GC other processes in non-smp runtime
Fix conversion of empty string in erts_convert_native_to_filename()
Add support for failing in BIF that has trapped
HiPE wrappers for BIFs disabling GC
|
|
Replace the 'erlang:binary_to_term/1' and 'erlang:binary_to_term/2'
Erlang wrappers taking care of failure after yield with management
of this in the hidden yield BIF.
|
|
* etsukata/system_info_tolerant_timeofday/OTP-11970:
Add erlang:system_info(tolerant_timeofday)
|
|
* lukas/erts/fix_trace_on_registered_procs/OTP-11968:
erts: tracing on send now works for registered processes
|
|
This bug was introduced in R16B. Testcases have been adapted to
verify the correct behaviour.
|
|
* mikpe/openfile-dont-use-undefined-statbuf:
Fix efile_openfile() to handle stat() failure
|
|
* fenek/fix/vstudio_macro:
Add Visual Studio macros to erl_driver.h and ei.h
|
|
* lukas/erts/git_vsn_script_fix/OTP-11961:
erts: Fix git version script
|
|
|
|
These files aren't supposed to be executable. For reference, the command used to
find them was:
git ls-files -z | xargs -0 -J % find % -type f -perm ++x
|
|
|
|
- erlang:list_to_binary/1
- erlang:iolist_to_binary/1
- erlang:list_to_bitstring/1
- binary:list_to_bin/1
|
|
|
|
- erlang:binary_to_list/1
- erlang:binary_to_list/3
- erlang:bitstring_to_list/1
|
|
|
|
If the initial stat() fails then efile_openfile() will still proceed
to open() the file. If that succeeds and the caller passed a non-NULL
pSize, then it will copy bogus data from the statbuf into *pSize. This
has been observed to cause file:read_file/1 to return truncated file
data with no error indication.
The use case involved a large file system mounted via NFS, with some
directories containing large number of files, and NFS mount options
that allow the NFS client to return EIO if the NFS server does not
respond quickly enough. Depending on the caching state of the client
and server machines, a few stat() calls (fewer than 1 per 10 million)
would take long enough to trigger EIO errors, but subsequent open()
calls would succeed, and read_file/1 would return truncated data. This
sequence of events has been observed via "strace" on beam.smp.
Signed-off-by: Mikael Pettersson <[email protected]>
|
|
|
|
|
|
* egil/fix-erts_debug-size/OTP-11923:
erts: Update preloaded erts_internal.beam
erts: Add spec for erts_internal:map_to_tuple_keys/1
erts: Add testcase for erts_debug:size/1 Map terms
kernel: Fix erts_debug:size/1 to handle Map sizes
erts: Add erts_internal:map_to_tuple_keys/1
|
|
|
|
* sverk/ets-delete-unfix-race/OTP-11892:
Fix race between ETS table deletion and unfixation
erts: Add etp commands for alloc_util block and carrier inspection
|
|
* lukas/erts/suspend_assert/OTP-11906:
erts: Fix faulty process suspend assert
|
|
|
|
* lukas/erts/etp-lc-macros/OTP-11904:
erts: Add etp-lc-dump and etp-ppc-stacktrace macro
|
|
|
|
* Used for introspection.
* Will return the internal key tuple if applicable
* Not documented - not for public use
|
|
Symptom: VM crash running mnesia_SUITE
Scenario: Process A terminates while still having fixed table T
and process B "at the same time" deletes table T with ets:delete/1 or
by terminating.
Problem: A table scheduled for deallocation do only have a valid
'common' part. The unfix-table-at-process-exit code tried to read the
hash-specific part of such a table.
Solution: Must back off if DB_DELETE flag is set.
Since: R16B
|
|
* sverk/test-cuddle:
Fix timeout for match_spec_SUITE:otp_9422
|