Age | Commit message (Collapse) | Author |
|
Autoskip traffic testcases if transport isn't established instead of
having traffic cases run and fail.
|
|
Testcase is already run elsewhere on the suite.
|
|
In particular, that transmission can be very slow. The problem appears
to be linked to sndbuf/recbuf, but even with buffers that are large
enough to hold all messages being sent, turnaround times can still vary
by hundreds of milliseconds in a reasonable test environment.
Use multiple streams and a sender process to more closely mirror the
usage in diameter_sctp, but neither is the source of the problems.
|
|
The server sent and died, but there's no guarantee that it won't take
the connection down before the client has receive its bytes. Make the
server wait for the client to take down the connection.
|
|
This addresses the testcase failures mentioned in the parent commit,
which has been on account of the behaviour below, in which connect fails
on the loopback address. Work around it by finding/using another address
if possible.
$ erl
Erlang/OTP 20 [DEVELOPMENT] [erts-9.0] [smp:2:2] [ds:2:2:10] [async-threads:10] [hipe] [kernel-poll:false] [sharing-preserving]
Eshell V9.0 (abort with ^G)
1> {ok, LP} = gen_sctp:open().
{ok,#Port<0.439>}
2> gen_sctp:listen(LP, true).
ok
3> inet:socknames(LP).
{ok,[{{10,67,16,178},36506},{{127,0,0,1},36506}]}
4> {ok, S} = gen_sctp:open([{ip, {127,0,0,1}}]).
{ok,#Port<0.443>}
5> gen_sctp:connect_init(S, {127,0,0,1}, 36506, []).
{error,eaddrnotavail}
6> gen_sctp:connect_init(S, {10,67,16,178}, 36506, []).
{error,eaddrnotavail}
7> gen_sctp:close(S).
ok
8> f(S).
ok
9> {ok, S} = gen_sctp:open().
{ok,#Port<0.444>}
10> gen_sctp:connect_init(S, {127,0,0,1}, 36506, []).
ok
Even the following has been seen on at least one host, so that success
of gen_sctp:open/0 is no guarantee.
$ ifconfig -a4
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
bge0: flags=1004843<UP,BROADCAST,RUNNING,MULTICAST,DHCP,IPv4> mtu 1500 index 2
inet 10.67.16.180 netmask ffffff00 broadcast 10.67.16.255
$ erl
Erlang/OTP 20 [DEVELOPMENT] [erts-9.0] [source] [smp:2:2] [ds:2:2:10] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V9.0 (abort with ^G)
1> {ok, S} = gen_sctp:open(),
1> gen_sctp:connect(S, {127,0,0,1}, 3868, []).
{error,eafnosupport}
2> gen_sctp:connect(S, {10,67,16,180}, 3868, []).
{error,eafnosupport}
|
|
The comment in commit 736ce20a isn't quite true. There's no different
behaviour that diameter doesn't support, but there is a quirk with the
loopback address that has caused many testcases to fail. This will be
addressed in a subsequent commit.
Reverts commit 736ce20a.
|
|
Which dialyzer itself has never complained about.
|
|
Both diameter_tcp and diameter_sctp are susceptible to deadlock since a
peer that blocks send also prevents additional messages from being
received. Send from a process that's paired with the transport process
to avoid this. Use the existing monitor process in the TCP case, add one
in the SCTP case.
This has been the reason for many sporadic testcase failures, mostly in
diameter_traffic_SUITE.
|
|
Should be ssl:close/1.
|
|
Since smooth upgrade won't be supported in this branch.
|
|
|
|
Message length errors in incoming messages were misinterpreted with
transport_opt() {length_errors, exit} due to the throw introduced in
commit 2ffb288: the corresponding catch in incoming/2 caught errors
thrown by close/1, leading to failure when the error reason was
interpreted as a diameter_packet record. Do away with the throw, that
also caused woe in the parent commit.
|
|
A transport process can request acknowledgement of the fate of an
incoming message to a specified pid, causing it to receive one of
{diameter, {request|answer, pid()} | discard}
depending on whether or not diameter passes the message off to a handler
process. This was broken in commit a4da06a5 (since recv/3 threw a
message that should be received), but is of little consequence since the
interface isn't yet documented and is only used from diameter_tcp with
configuration that will soon change.
|
|
From commits 5ca5fb71 and 58091992.
|
|
|
|
|
|
|
|
Add enif_whereis_pid() and enif_whereis_port() functions
OTP-14453
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Unicode atoms are handled better by the Erlang code linter.
Module names are checked for character codes greater than 255. This
means that modules invoked after the linter can assume that module
names have only Latin-1 characters.
|
|
The field width calculation did not handle graphem clusters well.
|
|
Pull request 1459 (https://github.com/erlang/otp/pull/1459) points out
one situation where Unicode atoms are not handled well in c.erl. This
commit tries to fix all situations.
|
|
* maint:
Updated OTP version
Update release notes
Update version numbers
erts: Fix so that 81b628 (sigterm=kill) works
Updated OTP version
Prepare release
Unconditionally clear IO buffers on send/shutdown errors
Conflicts:
OTP_VERSION
erts/emulator/sys/unix/sys.c
erts/vsn.mk
|
|
* rickard/purge-hibernated-20:
Update testcase to check that purge handle hibernated process correct
Do not GC hibernated process from other processes
Fix check_process_code() on hibernated process
|
|
* maint-19:
Updated OTP version
Update release notes
Update version numbers
erts: Fix so that 81b628 (sigterm=kill) works
Updated OTP version
Prepare release
Update testcase to check that purge handle hibernated process correct
Do not GC hibernated process from other processes
Fix check_process_code() on hibernated process
Unconditionally clear IO buffers on send/shutdown errors
|
|
=== OTP-19.1.6.1 ===
Changed Applications:
- erts-8.1.1.1
Unchanged Applications:
- asn1-4.0.4
- common_test-1.12.3
- compiler-7.0.2
- cosEvent-2.2.1
- cosEventDomain-1.2.1
- cosFileTransfer-1.2.1
- cosNotification-1.2.2
- cosProperty-1.2.1
- cosTime-1.2.2
- cosTransactions-1.3.2
- crypto-3.7.1
- debugger-4.2.1
- dialyzer-3.0.2
- diameter-1.12.1
- edoc-0.8
- eldap-1.2.2
- erl_docgen-0.6
- erl_interface-3.9.1
- et-1.6
- eunit-2.3.1
- gs-1.6.2
- hipe-3.15.2
- ic-4.4.2
- inets-6.3.3
- jinterface-1.7.1
- kernel-5.1
- megaco-3.18.1
- mnesia-4.14.1
- observer-2.2.2
- odbc-2.11.3
- orber-3.8.2
- os_mon-2.4.1
- otp_mibs-1.1.1
- parsetools-2.1.3
- percept-0.9
- public_key-1.2
- reltool-0.7.2
- runtime_tools-1.10.1
- sasl-3.0.1
- snmp-5.2.4
- ssh-4.3.6
- ssl-8.0.3
- stdlib-3.1
- syntax_tools-2.1
- tools-2.8.6
- typer-0.9.11
- wx-1.7.1
- xmerl-1.3.12
* tag 'OTP-19.1.6.1':
Updated OTP version
Prepare release
Conflicts:
OTP_VERSION
erts/vsn.mk
otp_versions.table
|
|
* siri/reltool/fix-doc-example:
[reltool] Fix outdated example in user's guide
|
|
|
|
* bjorn/cuddle-with-tests:
Stabilize call_with_huge_message_queue/1
same_time_yielding/1: Avoid failing if there are many schedulers
Remove obsolete old_scheduler_SUITE
Robustify process_SUITE:spawn_opt_max_heap_size/1
Contain damage cause by spawn_opt_max_heap_size failing
Make bulk_send_bigbig/1 purely informational
distribution_SUITE: Refactor bulk_send_bigbig/1
receive_SUITE: Remove ?line macros
Lengthen too short timetraps
Fix process_SUITE:low_prio/1
|
|
* bjorn/erts/fix-sys-task-cleanup:
Make sure that asynchronous replies are not lost
|
|
Fix typo
|
|
As part of sys_core_fold, variables involved in bit syntax
matching would be annotated when it would be safe for a later
pass to do the delayed sub-binary creation optimization.
An implicit assumption regarding the annotation was that the
code must not be further optimized. That assumption was broken
in 05130e48555891, which introduced a fixpoint iteration
(applying the optimizations until there were no more changes).
That means that a variable could be annotated as safe for
reusing the match context in one iteration, but a later iteration
could rewrite the code in a way that would make the optimization
unsafe.
One way to fix this would be to clear all reuse_for_context
annotations before each iteration. But that would be wasteful.
Instead I chose to fix the problem by moving out the annotation
code to a separate pass (sys_core_bsm) that is run later after
all major optimizations of Core Erlang has been done.
|
|
|
|
find and use source directive when searching for source file
|
|
There are a multitude of RFC:s that point to each other and some of them
suggest different addresses with IPv4 suffixes. Use the IPv4 suffix
text representation only for the old well known ::a.b.c.d and
::ffff:a.b.c.d prefixes. The others seems to be moving targets.
|
|
|
|
|
|
|
|
* lukas/erts/fix_zz_sigterm_kill/OTP-14451:
erts: Fix so that 81b628 (sigterm=kill) works
|
|
* rickard/purge-hibernated-19/ERIERL-24/OTP-14444:
Update testcase to check that purge handle hibernated process correct
Do not GC hibernated process from other processes
Fix check_process_code() on hibernated process
|
|
* john/erts/fix-zombie-tcp-ports/ERL-430/OTP-14441:
Unconditionally clear IO buffers on send/shutdown errors
|
|
|
|
|
|
* ingela/inets/ERL-382:
inets: httpc - Gracefull normal shutdown
|