Age | Commit message (Collapse) | Author |
|
To avoid having the peer interpret the error as meaning the connection
shouldn't be closed, which probably does more harm than ignoring
syntactic errors in the DPR.
Note that RFC 6733 says this about incoming DPR, in 5.4 Disconnecting
Peer Connections:
Upon receipt of the message, the Disconnect-Peer-Answer message is
returned, which SHOULD contain an error if messages have recently been
forwarded, and are likely in flight, which would otherwise cause a race
condition.
The race here is presumably between answers to forwarded requests and
the outgoing DPA, but we have no handling for this: whether or not there
are pending answers is irrelevant to how DPR is answered. It's
questionable that a peer should be able to prevent disconnection in any
case: it has to be the node sending DPR that decides if it's approriate,
and the peer should take it as an indication of what's coming.
Incoming DPA is already treated leniently: the only error that's not
ignored is mismatching End-to-End and Hop-by-Hop Identifiers, since
there's no distinguishing an erroneous value from an unsolicited DPA.
This mismatch could also be ignored, which is the case for DWA for
example, but this problem is already dealt with by dpa_timeout, which
causes a connection to be closed even when the expected DPA isn't
received.
|
|
* anders/diameter/dpr/OTP-12542:
Discard CER or DWR sent with diameter:call/4
Allow DPR to be sent with diameter:call/4
Add transport_opt() dpa_timeout
Add testcase for sending DPR with diameter:call/4
|
|
* anders/diameter/dpr/OTP-12543:
Discard incoming requests after outgoing DPR
Discard outgoing requests after outgoing DPR
|
|
* erland/revert_time/OTP-12444:
Revert "Use new time API and be back-compatible in ssh"
|
|
These are requests that diameter itself sends. It's previously been
possible to send them, but answers timed out at the caller since they
were discarded in diameter_watchdog. Answers will still timeout, but now
the requests are discarded before being sent.
|
|
DPR is sent by diameter at application shutdown, service stop, or
transport removal. It has been possible to send the request with
diameter:call/4, but the answer was discarded, instead of the transport
process being terminated. This commit causes DPR to be handled in the
same way regardless of whether it's sent by diameter or by
diameter:call/4.
Note that the behaviour subsequent to DPA is unchanged. In particular,
in the connecting case, the closed connection will be reestablished
after a connect_timer expiry unless the transport is removed. The more
probable use case is the listening case, to disconnect a single peer
associated with a listening transport.
|
|
To make the default DPA timeout configurable. The timeout say how many
milliseconds to wait for DPA in response to an outgoing DPR before
terminating the transport process regardless.
|
|
That currently fails when the resulting DPA is regarded as unsolicited
in diameter_peer_fsm, causing the request to timeout at the caller.
|
|
Since there's a race between an answer being sent and the connection
being closed upon the reception of DPA that's likely to be lost, and
because of the questionability of sending messages after DPR, as
discussed in the parent commit. An exception is made for DPR so that
simultaneous DPR in both directions doesn't result in it being discarded
on both ends.
|
|
RFC 6733 isn't terribly clear about what should happen to incoming or
outgoing messages once DPR is sent and the Peer State Machine
transitions into state Closing. There's no event for this in section
5.6, Peer State Machine, and no clarification in section 5.4,
Disconnecting Peer Connections. There is a little bit of discussion in
2.1.1, SCTP Guidelines, in relation to unordered message delivery, but
the tone there is that messages might be received after DPR because of
unordered delivery, not because they were actually sent after DPR.
Discarding outgoing answers may do more harm than good, but requests are
more likely to be unexpected, as has been seen to be the case with DWR
following DPR. DPR indicates a desire to close the connection: discard
any subsequent outgoing requests.
|
|
* anders/diameter/17/time/OTP-12439:
Adapt app suite to changes in time api
|
|
* anders/diameter/time/OTP-12439:
Adapt to changes in time api
|
|
* nox/fix-port_info-race:
Fix a race condition when calling port_info/1
OTP-12587
|
|
* anders/diameter/pool/OTP-12428:
Add pool_size test to config suite
|
|
Overlooked in commit 4b691d8d.
|
|
erlang:convert_time_resolution/3 has been renamed to convert_time_unit.
erlang:time_resolution/0 has been removed: use new time resolution
values instead.
|
|
erlang:time_resolution/0 has been removed,
erlang:convert_time_resolution/3 has been renamed convert_time_unit, and
{os,erlang}:system_time/0,1 have been added. Modify the list of ignored
undefined function calls accordingly.
|
|
* johanclaesson/maint:
Fix tags completion in erlang.el for GNU Emacs 23+
OTP-12583
|
|
* kovyl2404/maint/cpu_sup_big_loadavg/OTP-12581:
Handle big loadavg values correctly
|
|
* egil/dialyzer/fix-find_terminals/OTP-12577:
dialyzer: Add missing clause for map in find_terminals
|
|
Do not crash with badmatch when integer part of loadavg has more than 2
digits.
|
|
* qrilka/patch-3:
Minor comment fix
|
|
* nlmills/cleanup:
Remove unused time macros from efile_drv
|
|
* jeffweiss/fix_eldap_doc_infinity_typo:
fix `infinity` typo in eldap docs
|
|
* wmalik/minor-fixes:
Fix proc_lib doc
Remove commented out code
Fix make_hash description
|
|
This variable hold the values returned by erlang:port_info/1 and
shouldn't be static.
Reported-by: Heinz Nikolaus Gies
|
|
* peppe/common_test/end_per_group_event:
Always report ok to event handlers after successful cfg or tc func
OTP-12279
|
|
Also make sure test_server never reports failures that can be
mistaken for positive results.
|
|
* peppe/common_test/change_pre_post_io_test_timing:
Modify test timing by enabling time multiplier and scaling
OTP-12574
|
|
|
|
into maint
* origin/peppe/common_test/enable_time_scaling:
Enable timetrap scaling for all tests
|
|
* origin/peppe/fix_xcomp:
Modify the xcomp file for ARM and enable more flags
Fix problem with variables not getting assigned during installation
OTP-11441
|
|
* origin/peppe/common_test/tc_log_format:
Modify the top section of the test case log file
OTP-12518
|
|
into maint
* origin/peppe/common_test/log_cache_problem:
Fix problem with directories not listed in expected order
OTP-11400
|
|
'origin/peppe/common_test/ct_netconfc_action_ok' into maint
* origin/peppe/common_test/ct_netconfc_action_ok:
Handle {ok,Data} in RPC reply (decode_rpc_reply)
OTP-12491
|
|
into maint
* origin/peppe/common_test/public_event_mgr:
Add documentation
Add API functions for reading CT event manager references
OTP-12506
|
|
|
|
* hb/tools/unicode_fix/OTP-12567:
tools: Fix a Unicode bug in the tags module
|
|
Reported-by: Ali Sabil
|
|
|
|
* rickard/port_control_flags_crash/OTP-12544:
Make access to control_flags safe in non-smp emulator
|
|
* rickard/find_emu_cc/OTP-12388:
Fix missing quotation in LM_FIND_EMU_CC
|
|
* rickard/otp_patch_apply/OTP-12565:
Minor fixes
|
|
|
|
* rickard/otp_patch_apply/OTP-12565:
Add support for patching of individual applications
|
|
|
|
The tag completion code was changed in GNU Emacs 23.1 in a way that
broke erlang.el tag completion. This commit fix that for Emacs 23.1 and
later.
Add progress report while building completion table.
Add completion of module_info/0 for all modules.
Add lib/tools/emacs/*.elc to .gitignore.
|
|
This reverts commit af972aaf14a5f53510e692f48f672f7e6805ee6d.
Conflicts:
lib/ssh/test/ssh_basic_SUITE.erl
|
|
* ia/public_key/crls_dialyzer:
public_key: dialyzer fixes
|
|
|