Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
* nox/lists-filtermap/OTP-11078:
Rename and document lists:zf/2 as lists:filtermap/2
|
|
* fredrik/common_test/wait_for_linebreak_doc:
Added further doc
common_test: Added documentation for wait_for_linebreak option
|
|
* siri/cuddle-with-tests:
[jinterface] Extend timetrap timers in nc_SUITE and jinterface_SUITE
[jinterface] Set max heap size for jvm when running echo_server
[jinterface] Clean up hanging java nodes after each test case
|
|
This function is used all over the place in OTP itself and people
sometimes want that functionality, they may as well not reimplement it
themselves.
|
|
|
|
|
|
* 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
|
|
|
|
* pan/monitor_long_schedule:
Skip testcase on platforms w/o pipes/usleep
Add documentation for new system_monitor
Add long_schedule detection for ports and testcases
Add erlang:system_monitor(Pid,[{long_schedule,Millis}])
|
|
|
|
|
|
|
|
* 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
|
|
|
|
The test cases nc_SUITE:decompress_roundtrip and
nc_SUITE:compress_roundtrip fails on some machines with
OutOfMemoryException. This commit sets the max heap size for the jvm
to 256M in nc_SUITE in order to get around this.
|
|
|
|
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.
|
|
|