Age | Commit message (Collapse) | Author |
|
* egil/opt-list_to_binary/OTP-11082:
erts: Use fast path for list_to_binary([Bin]) case
|
|
A common case is to wrap an argument to list_to_binary in a list
to ensure conversion can happen even though the argument may already
be a binary. Use fast path for this case.
|
|
* maint:
Fix src/dest overlap in ttsl driver
fix valgrind error in erts/emulator/drivers/unix/ttsl_drv.c
|
|
|
|
Running some valgrind memory checking showed the error below:
==18040== Thread 6:
==18040== Source and destination overlap in memcpy(0xf3f3f04, 0xf3f3f08, 52)
==18040== at 0x4C2CFA0: memcpy@@GLIBC_2.14 (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==18040== by 0x5CF527: del_chars (ttsl_drv.c:845)
==18040== by 0x5CED5E: ttysl_from_erlang (ttsl_drv.c:658)
==18040== by 0x4982E3: erts_write_to_port (io.c:1235)
==18040== by 0x49A2BD: erts_port_command (io.c:2223)
==18040== by 0x48C054: do_send (bif.c:1962)
==18040== by 0x48CB6E: erl_send (bif.c:2162)
==18040== by 0x566599: process_main (beam_emu.c:1665)
==18040== by 0x4B1A95: sched_thread_func (erl_process.c:4834)
==18040== by 0x6075E2: thr_wrapper (ethread.c:106)
==18040== by 0x5560E99: start_thread (pthread_create.c:308)
This occurred on Linux using R15B01 while the shell was emitting a prompt,
but the same problem is still present in R16B.
Change the memcpy on line 845 of ttsl_drv.c to memmove as valgrind
suggests. After the change, verify with valgrind that the error no longer
occurs.
|
|
|
|
* maint-r16:
Prepare release
Prepare release
Do not count offline run-queues as empty
Prepare release
Prevent loss of objects after the extension marker
Don't lose the extension mark for object set parameters
Conflicts:
erts/vsn.mk
|
|
To ensure that 'master' compiles when we merge 'maint' to it,
regardless of which encoding is default in 'master', all source
files with non-ascii characters *must* have the encoding specified.
|
|
|
|
Conflicts:
erts/vsn.mk
|
|
* egil/r16/fix-delete_element/OTP-10932:
erts: Refactor erlang:insert_element/3 for clarity
erts: Fix copy error in erlang:delete_element/2
|
|
* rickard/sys-flags/OTP-11000:
Fix `+sws' and `+swt' system flags
|
|
* rickard/thr_prgr_later_op/OTP-10994:
Make port close not be delayed
Be less eager requesting wakeup for cleanup jobs
|
|
Drivers are dereferenced when the port is completely gone, in the operation
scheduled with erts_schedule_thr_prgr_later_op. If we use
erts_schedule_thr_prgr_later_cleanup_op, it may not happen
for a long time and the driver can not be unloaded.
We can not dereference the driver before the thread_progress_later
thing, because references to the driver may exist in other threads, so
the unloading of the driver may free locks held by other schedulers and
whatnot.
|
|
|
|
|
|
* sverk/meta-trace-leak:
erts: Fix memleak related to meta tracing
OTP-10997
|
|
* lukas/erts/efile_delayed_write_fix/OTP-10984:
Do driver_deq in worker threads instead of async_ready
|
|
|
|
Doing it in async_ready was needed before the pdl was introduced, but
now with the pdl the deq no longer needs the port lock to protect it.
This was not an issue when async_ready was called in the worker thread,
but now (R15B) that it is signalled back to the scheduler, some very nasty
race conditions could occur when using driver_timer and async jobs.
|
|
|
|
Off-by-one error in element copy.
|
|
|
|
spells __NetBSD__ correctly.
|
|
* egil/fix-mseg_dealloc-arguments/OTP-10912:
erts: Fix refactor error in mseg
|
|
Faulty number of arguments to mseg_dealloc.
Problem arises if we try to compile halfword on operating system
which do not have mremap. Not a supported case.
|
|
|
|
|
|
|
|
|
|
|
|
* sverk/halfword-loading-crash:
erts: Fix crash on halfword and code_SUITE:big_boot_embedded
OTP-10896
|
|
* lukas/erts/add_ERL_MAX_PORTS_env/OTP-10895:
Undo removal of ERL_MAX_PORTS os variable
|
|
|
|
|
|
|
|
* rickard/win-drv-bugfix/OTP-10803:
Fix close_active_handle() properly
|
|
* egil/win-efile-bugfix/OTP-10890:
erts: Use correct type for ReadFile bytes read
|
|
|
|
Using a 64bit type for bytes read will not always clear the higher bits.
|
|
* rickard/r16b/port-leak/OTP-10809:
Fix port structure leak when hitting system limit
|
|
* sverk/win-64-pointer-fix:
erts: Correct term type for printf %T
erts: Correct internal printf integer type for win64
erts: Correct some printf type formatting
erts: Fix type bug in get_proc_affinity for windows
OTP-10887
Forgot this ticket for sverk/erlang_pid-revert:
OTP-10885
|
|
|
|
* pan/unicode_printable_ranges:
Adapt stdlib tests to ~tp detecting latin1 binaries
Update primary bootstrap
Make wx debugger use +pc flag when applicable
Correct misspelled comments and space at lin ends
Make ~tp output latin1 binaries as strings if possible
Leave the +pc handling to io and io_lib_pretty
Remove newly introduced warning in erlexec.c
Make shell_SUITE:otp_10302 use +pc unicode when needed
Fix io_proto_SUITE to handle the new io_lib_pretty:print
Add testcase for +pc and io:printable_range/0
Make printing of UTF-8 in binaries behave like lists.
Document +pc flag and io:printable_range/0
Add usage of and spec for io:printable_range/0
Add +pc {latin1|unicode} switch and io:printable_range/0
Fix some Unicode issues
OTP-18084
|
|
* rickard/r16b/thread-queue-fix/OTP-10854:
Fix lost enqueue notification
Use dirty read instead of union which can be unsafe on some platforms
Add atomic dirty read and dirty set operations
|
|
|
|
|
|
* sverk/tcp-exit_on_close-false:
inet_drv: Fix condition to reject INET_REQ_IGNOREFD for UDP and SCTP
A stab at fixing bug with {exit_on_close,false} not working
|
|
* lukas/erts/fix_non_smp_shell_sws/OTP-10661:
Fix bug where +sws proposal was still allowed to be set
|
|
* lukas/erts/efile_iter_max_files:
Move test to slave node with limited ports
|