Age | Commit message (Collapse) | Author | |
---|---|---|---|
2017-06-11 | Deal with (another) SCTP association id quirk on Solaris | Anders Svensson | |
Shutdown events have been seen to get a different association id. For example, first incoming message with association id = 0: + {trace_ts,<6421.268.0>,call, {diameter_sctp,handle_info, [{sctp,#Port<6421.2588>, {10,67,16,179}, 44159, {[{sctp_sndrcvinfo,0,0,[],0,0,0,269950872,269950872,0}], <<1,0,0,156,128,0,1,1,0,0,0,0,6,193,40,137,6,193,40,137,0,0, 1,8,64,0,0,30,67,45,49,51,52,50,49,55,52,52,49,46,101,114, 108,97,110,103,46,111,114,103,0,0,0,0,1,40,64,0,0,18,101, 114,108,97,110,103,46,111,114,103,0,0,0,0,1,1,64,0,0,14,0, 1,127,0,0,1,0,0,0,0,1,10,64,0,0,12,0,0,48,57,0,0,1,13,0,0, 0,20,79,84,80,47,100,105,97,109,101,116,101,114,0,0,1,22, 64,0,0,12,0,0,0,1,0,0,1,2,64,0,0,12,0,0,0,0,0,0,1,3,64,0,0, 12,0,0,0,3>>}}, {transport,<6421.252.0>,accept,#Port<6421.2588>,true,undefined, {32,32}, 0,undefined}]}, {1493,21505,577938}} Later, a shutdown event with association id 1536: + {trace_ts,<6421.268.0>,call, {diameter_sctp,handle_info, [{sctp,#Port<6421.2588>, {10,67,16,179}, 44159, {[],{sctp_shutdown_event,1536}}}, {transport,<6421.252.0>,accept,#Port<6421.2588>,0,undefined, {32,32}, 2,<6421.304.0>}]}, {1493,21505,746929}} Both this and the grandparent commit are on this: $ uname -a SunOS beren 5.10 Generic_118833-33 sun4v sparc SUNW,Netra-T2000 | |||
2017-06-11 | Use binary:copy/2 when generating largish data in test suites | Anders Svensson | |
Faster than lists:duplicate/2. | |||
2017-06-11 | Deal with SCTP association id quirk on Solaris | Anders Svensson | |
In particular, that the association id received in messages on a one-to-one socket after peeloff may be different from the id received on the listen socket at comm_up. This seems odd, since it's then not possible to send until the id is discovered by reception of an SCTP message containing it, but it's unclear if this is a bug or a feature, or if it's specific to certain platforms. Treat it as a feature in this commit, and get the association id as mentioned, an incoming CER being expected before anything is sent. Commit da3e5d67 has more history. | |||
2017-06-11 | Make skipped SCTP testcases more visible in traffic suite | Anders Svensson | |
By explicitly skipping instead of omitting testcases from groups. | |||
2017-06-11 | Make traffic suite fail less brutally | Anders Svensson | |
Autoskip traffic testcases if transport isn't established instead of having traffic cases run and fail. | |||
2017-06-11 | Remove superfluous traffic testcase | Anders Svensson | |
Testcase is already run elsewhere on the suite. | |||
2017-06-11 | Rework gen_sctp suite to demonstrate remaining problems | Anders Svensson | |
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. | |||
2017-06-11 | Fix diameter_transport_SUITE race | Anders Svensson | |
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. | |||
2017-06-11 | Work around SCTP quirks on sparc-sun-solaris2.10 | Anders Svensson | |
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} | |||
2017-06-11 | Revert "diameter: Do not test SCTP on sparc-sun-solaris2.10" | Anders Svensson | |
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. | |||
2017-06-11 | Add missing dialyzer types | Anders Svensson | |
Which dialyzer itself has never complained about. | |||
2017-06-11 | Don't send from receiving transport processes | Anders Svensson | |
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. | |||
2017-06-11 | Fix gen_tcp close of ssl socket | Anders Svensson | |
Should be ssl:close/1. | |||
2017-06-11 | Remove clauses supporting old code | Anders Svensson | |
Since smooth upgrade won't be supported in this branch. | |||
2017-06-11 | Correct comment typo | Anders Svensson | |
2017-06-11 | Fix handling of message length errors | Anders Svensson | |
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. | |||
2017-06-11 | Fix broken discard acknowledgement | Anders Svensson | |
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. | |||
2017-06-11 | Remove trailing whitespace | Anders Svensson | |
From commits 5ca5fb71 and 58091992. | |||
2017-03-14 | Updated OTP versionOTP-19.3 | Erlang/OTP | |
2017-03-14 | Prepare release | Erlang/OTP | |
2017-03-13 | Fix xml warnings in old release notes | Rickard Green | |
2017-03-10 | Update preloaded modules | Rickard Green | |
2017-03-10 | Update primary bootstrap | Rickard Green | |
2017-03-10 | Update copyright year | Rickard Green | |
2017-03-09 | Merge branch 'hans/ssh/update_app_file' into maint | Hans Nilsson | |
2017-03-09 | ssh: Update .app file | Hans Nilsson | |
2017-03-09 | Merge pull request #1368 from bjorng/bjorn/travis/multiple-platforms | Björn Gustavsson | |
Extend Travis CI to test more configurations | |||
2017-03-09 | Merge branch 'siri/appups-19.3' into maint | Siri Hansen | |
* siri/appups-19.3: Update appups in kernel and stdlib for OTP-19.3 | |||
2017-03-08 | Travis CI: Add building of Erlang/OTP on 32-bit Linux | Björn Gustavsson | |
Build Erlang and run smoke test in a Docker container running 32-bit Linxux. | |||
2017-03-08 | Run the smoke test for both SMP and non-SMP emulator | Björn Gustavsson | |
2017-03-08 | run-smoke-test: Let ERL_TOP default to current working directory | Björn Gustavsson | |
2017-03-08 | build-docker-otp: Avoid copying the git repository to docker daemon | Björn Gustavsson | |
Since docker is run from the top-level of the otp repository, the entire repository will be the context for the docker daemon. In my private repository, more than 800Mb had to be copied before the build could be started. Let the ./scripts directory be the context for docker instead. That way, only the otp.tar.gz file needs to be copied. While we are it, also use the ADD command in the Dockerfiles to pack up the tar file and avoid copying the tar file itself to the Docker image. | |||
2017-03-08 | Merge branch 'anders/diameter/capx_strictness/OTP-14257' into maint | Anders Svensson | |
* anders/diameter/capx_strictness/OTP-14257: Add transport_opt() capx_strictness | |||
2017-03-08 | Update appups in kernel and stdlib for OTP-19.3 | Siri Hansen | |
2017-03-08 | Merge branch 'anders/diameter/19.3/OTP-14252' into maint | Anders Svensson | |
* anders/diameter/19.3/OTP-14252: vsn -> 1.12.2 Update appup for 19.3 | |||
2017-03-08 | Merge branch 'anders/diameter/19.2/failover/OTP-14206' into maint | Anders Svensson | |
* anders/diameter/19.2/failover/OTP-14206: Avoid sending large terms between nodes unnecessarily Don't use request table for answer routing Fix/redo failover optimization | |||
2017-03-08 | builder-docker-otp: Fix passing of command | Björn Gustavsson | |
Pass all argument except the first as the command for "docker run". | |||
2017-03-08 | Merge branch 'ingela/ssl/next-maint-version' into maint | Ingela Anderton Andin | |
* ingela/ssl/next-maint-version: ssl: Version update | |||
2017-03-08 | Merge branch 'ingela/ssl/dtls-cont' into maint | Ingela Anderton Andin | |
* ingela/ssl/dtls-cont: dtls: Only test this for TLS for now dtls: Avoid mixup of protocol to test dtls: 'dtlsv1.2' corresponds to 'tlsv1.2' dtls: Correct dialyzer spec and postpone inclusion of test dtls: Erlang distribution over DTLS is not supported dtls: Enable some DTLS tests in ssl_to_openssl_SUITE dtls: Enable DTLS test in ssl_certificate_verify_SUITE dtls: Hibernation and retransmit timers dtls: Make sure retransmission timers are run dtls: DTLS specific handling of socket and ciphers | |||
2017-03-08 | dtls: Only test this for TLS for now | Ingela Anderton Andin | |
We want to avoid failing test cases but still be able to merge DTLS progress for 19.3 | |||
2017-03-08 | Add transport_opt() capx_strictness | Anders Svensson | |
To allow the Peer State Machine requirement that only the expected capabilities exchange message be received in the relevant state to be relaxed. If {capx_strictness, false} is configured then anything bu the expected CER/CEA is ignored. This is non-standard behaviour, and thusfar undocumented. Use at your own risk. | |||
2017-03-08 | Reduce number of jobs for make | Björn Gustavsson | |
Running fewer jobs in parallel reduces the risk of running out of memory. | |||
2017-03-08 | Add docker images for building 32/64 bit erlang | Lukas Larsson | |
2017-03-08 | Travis CI: Change the language to C | Björn Gustavsson | |
We never use the installed Erlang package. Setting the language to C could also allow us to build on platforms that don't support the Erlang language (e.g. osx). | |||
2017-03-08 | Merge pull request #1366 from bjorng/bjorn/travis/print-progress-dots | Björn Gustavsson | |
Travis CI: Avoid that builds gets killed for inactivity | |||
2017-03-07 | Avoid sending large terms between nodes unnecessarily | Anders Svensson | |
When relaying outgoing requests through transport on a remote node, terms that were stripped when sending to the transport process weren't stripped when spawning a process on the remote node. Also, don't save the request to the process dictionary in a process that just relays an answer. | |||
2017-03-07 | Don't use request table for answer routing | Anders Svensson | |
The table has existed forever, to route incoming answers to a waiting request process: each outgoing request writes to the table, and each incoming answer reads. This has been seen to suffer from lock contention at high load however, so this commit moves the routing into the diameter_peer_fsm processes that are diameter's conduit to transport processes. The request table is still used for failover detection, but entries are only written when a watchdog state transitions leaves or enters state OKAY. | |||
2017-03-07 | dtls: Avoid mixup of protocol to test | Ingela Anderton Andin | |
2017-03-07 | Merge branch 'lars/xmerl/compiler_and_dialyzer_warnings/OTP-14212' into maint | Lars Thorsen | |
* lars/xmerl/compiler_and_dialyzer_warnings/OTP-14212: [xmerl] Fix compiler and dialyzer warnings | |||
2017-03-07 | [xmerl] Fix compiler and dialyzer warnings | Lars Thorsen | |