Age | Commit message (Collapse) | Author |
|
|
|
|
|
Conflicts:
lib/kernel/test/os_SUITE.erl
|
|
Because of leeway in implementing os:cmd/1 under different OS there is
a difference in results when calling it with deep list
argument. os:cmd/1 specifies io_lib:chars() type for its argument and
io_lib functions can produce deep lists inspite of io_lib:chars()
result type specification. This commit flattens the argument for
erlang:open_port/2 (which is used under Windows) and expands the
os_SUITE to regress the bug.
|
|
* as/fix-srp-psk-anon/OTP-11071:
fix srp_anon ciphers suites requiring certificates to work.
|
|
|
|
* nox/fix-multiple-ref-regs/OTP-11069:
Use a set to store ref registers in beam_receive
|
|
* peppe/common_test/ts_logfile_problems:
Fix error with refreshing logs when html util files are missing
Add correct footer to last run index page
Make test_server close log files properly and include correct footer
|
|
* sv-ttsl-valgrind:
Fix src/dest overlap in ttsl driver
fix valgrind error in erts/emulator/drivers/unix/ttsl_drv.c
OTP-11064
|
|
* hb/dialyzer/gui-bugfix/OTP-11057:
[dialyzer] Fix a bug concerning the --gui and --wx options
|
|
A bug that made it impossible to do any analyses from the GUI has been
fixed. The bug was introduced in dialyzer-2.5.2.
|
|
|
|
OTP-11046
|
|
OTP-11046
|
|
* kt/fix-crypto-doc-typo:
crypto: Fix typo in documentation
OTP-11058
|
|
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.
|
|
|
|
* fredrik/ssh/unicode_adapt:
ssh: unicode adaptions
|
|
OTP-11046
|
|
* anders/diameter/mkdir_race/OTP-11051:
Fix mkdir race
|
|
In some circumstances, as when inlining code, when some optimization
passes are disabled or with hand-written but semantically correct Core
Erlang or BEAM assembly, a fresh reference may be live in more than one
register:
...
{allocate_zero,2,2}.
...
{call_ext,0,{extfunc,erlang,make_ref,0}}. % Ref in [x0]
...
{move,{x,0},{y,0}}. % Ref in [x0,y0]
{move,{y,1},{x,0}}. % Ref in [y0]
...
{move,{y,0},{x,0}}. % Ref in [x0,y0]
{move,{x,0},{y,1}}. % Ref in [x0,y0,y1]
{label,5}.
{loop_rec,{f,6},{x,0}}. % Ref in [y0,y1]
...
{loop_rec_end,{f,5}}.
{label,6}.
{wait,{f,5}}.
...
Pass beam_receive expects a single live register for the ref when it
encounters the loop_rec instruction and crashes with the following
reason:
$ erlc t.S
...
crash reason: {{case_clause,
{'EXIT',
{{case_clause,[{y,1},{y,0}]},
[{beam_receive,opt_recv,5,
[{file,"beam_receive.erl"},{line,154}]},
...]}}},
...}
This commit teaches beam_receive how to use a set of registers instead
of a single one when tracking fresh references, thus avoiding the crash.
|
|
|
|
* siri/cuddle-with-tests:
[common_test] Adjusted timers in ct_repeat_testrun_SUITE
[common_test] Extend timer in cover_SUITE for slow test host
[sasl] Remove compiler warning in release_handler_SUITE
[common_test] Kill slave nodes after test cases in cover_SUITE
[reltool] Remove erlang:port_close/1 for node port
|
|
This is to allow slower test hosts.
|
|
|
|
|
|
The test case cover_SUITE:slave_start_slave often fails on a test host
(windows) due to a hanging node from an earlier test run. In the first
test, the slave fails to start (boot_timeout?) and is never connected
to the test node. The attempt at cleaning up used nodes() to find
which slaves to kill - so in the case where the slave was never
connected it was never killed. This is no changed so each slave is
explicitly killed by name - no matter if it is pingable or not.
|
|
Test nodes are started with erlang:open_port/2, using the -detached
option to erl. -detached causes the port returned from open_port/2 to
be closed automatically. Some test cases failed occasionally with a
badarg when attempting to close the port with erlang:port_close/1. To
avoid this the call to port_close/1 is now removed.
|
|
* ak/fix-cpu-overhead-of-timer-server/OTP-11053:
fix excessive CPU consumption of timer_server
|
|
I've found stdlib's timer to burn CPU without good reason. Here's what
happens.
The problem is that it sleeps in milliseconds but computes time in
microseconds. And there is bug in code to compute milliseconds to
sleep. It computes microseconds difference between now and nearest
timer event and then does _truncating_ division by 1000. So on average
it sleeps 500 microseconds _less than needed_. On wakeup its checks do
I have timer tick that already occurred? No. Ok how much I need to
sleep ? It does that bad computation again and gets 0
milliseconds. So next gen_server timeout happens right away only to
find we're still before closest timer tick and to decide to sleep 0
milliseconds again. And again and again.
This commit changes division to pick ceiling of ratio rather than
floor. So that we always sleep not less then difference between now
and closest event time.
|
|
Creating examples/code and examples/dict in parallel can fail when
examples doesn't exists. This has been seen on FreeBSD.
|
|
* 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
|
|
* maint-r15:
Prepare release
Dummy merge.
|
|
|
|
* rickard/sched/OTP-11022:
Do not count offline run-queues as empty
|
|
|
|
* siri/ct/error-printout-link/OTP-11044:
[common_test] Add link from red error notification to full error description
[common_test] Use max importance when logging errors
|
|
* siri/doc-fnu-opts/OTP-10901:
Add documentation of w, i and e addition to +fnu and +fna switches to erl
|
|
* fredrik/inets/unblock_timer:
inets: stop block timer with the right arguments
|
|
These were documented in the stdlib user's guide, but not in the
reference manual for erl. This has now been corrected.
|
|
* peppe/common_test/log_cache2:
Bug fixes in Common Test log cache
|
|
|
|
* peppe/common_test/log_cache:
Implement cache for the CT logger
OTP-10855
|
|
OTP-10855
|
|
* bjorn/fix-encoding/OTP-11041:
Encode Erlang source files with non-ascii characters in UTF-8
|
|
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.
|
|
* bjorn/asn1/fix-lost-extension-mark/OTP-10995:
Prevent loss of objects after the extension marker
Don't lose the extension mark for object set parameters
|
|
|
|
In test case log, the red error notification may sometimes be
truncated. This commit adds a link from this printout to the end of
the log where the full error description and stacktrace i written.
|
|
This commit adds ?MAX_IMPORTANCE to error notifications in the test
case log, and it makes sure that the printout says "CT Error
Notification".
Printouts from cth_log_redirect (sasl and error_reports) uses
?STD_IMPORTANCE and states "System" in the printout.
|