Age | Commit message (Collapse) | Author | |
---|---|---|---|
2015-06-19 | Decrease unnecessarily long testsuite timetraps | Anders Svensson | |
2015-06-19 | Simplify accepting transport start | Anders Svensson | |
Don't pass an association id that's no longer used. | |||
2015-06-19 | Simplify peeloff signaling | Anders Svensson | |
In particular, don't give the accepting transport process the listening socket. It was used to match the initial sctp message received in a peeloff message, but replace the socket in the forwarded message instead. | |||
2015-06-19 | Simplify socket close at terminate | Anders Svensson | |
The existing code was a remnant of the pre-peeloff implementation. There's no need to close anything but the whole socket. | |||
2015-06-19 | Don't monitor listener after peeloff | Anders Svensson | |
Listener death should have no effect on a peeled off association. | |||
2015-06-19 | Don't receive initial messages out of order | Anders Svensson | |
Forwarding an sctp message from the listener process at the same time that the controlling process is changed means there's no guarantee that the message order will be preserved. Selectively receive the peeloff message before entering the gen_server loop to ensure the order is preserved. | |||
2015-06-19 | Remove assumption that SCTP association ids will be unique | Anders Svensson | |
This is not the case under Solaris for one: successive associations can receive the same association id as a result of peeloff, the id only being unique for the controlling port, not for the listening port as is the case under Linux for example. This made for many failures in the diameter test suites, the traffic suite in particular. Peeloff in diameter_sctp was introduced in 9a671bf0, before which the assumption was fine since it was the listening process that owned all associations. (Which obviously had other drawbacks.) Other remnants of the pre-peeloff implementation have also been removed: that the listener process might receive a message on a socket after peeloff for one. Peeloff in gen_sctp became available in commit 067cfe79, after the original implementation of diameter_sctp. This is trace on the unpatched code showing id reuse under Solaris: + {trace_ts,<0.103.0>,call, {diameter_sctp,handle_info, [{sctp,#Port<0.1625>, {127,0,0,1}, 35904, {[],{sctp_assoc_change,comm_up,0,32,32,1}}}, {listener,#Ref<0.0.1.948>,#Port<0.1625>,4, 57384, {-4,61481}, #Ref<0.0.8.12>, []}]}, {1432,458752,612168}} + {trace_ts,<0.103.0>,call, {diameter_sctp,handle_info, [{sctp,#Port<0.1625>, {127,0,0,1}, 35905, {[],{sctp_assoc_change,comm_up,0,32,32,1}}}, {listener,#Ref<0.0.1.948>,#Port<0.1625>,4, 57384, {-3,61481}, #Ref<0.0.8.12>, []}]}, {1432,458752,613042}} The result was this, when the second association was incorrectly forwarded to the first association's controlling process: ** {function_clause, [{diameter_sctp,transition, [{peeloff,#Port<0.1635>, {sctp,#Port<0.1625>, {127,0,0,1}, 35892, {[],{sctp_assoc_change,comm_up,0,32,32,1}}}, []}, {transport,<0.107.0>,accept,#Port<0.1634>,1,undefined,{32,32},0}], [{file,"transport/diameter_sctp.erl"},{line,561}]}, {diameter_sctp,t,2,[{file,"transport/diameter_sctp.erl"},{line,549}]}, {diameter_sctp,handle_info,2, [{file,"transport/diameter_sctp.erl"},{line,397}]}, {gen_server,try_dispatch,4,[{file,"gen_server.erl"},{line,614}]}, {gen_server,handle_msg,5,[{file,"gen_server.erl"},{line,680}]}, {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,238}]}]} | |||
2015-06-18 | erts: Fix timer wheel initialization bug for non smp | Sverker Eriksson | |
Init esdp->timer_wheel as NULL to please setup_aux_work_timer(). | |||
2015-06-18 | Merge branch 'rickard/time-api-doc-fix' | Rickard Green | |
* rickard/time-api-doc-fix: Minor doc fixes | |||
2015-06-18 | Minor doc fixes | Rickard Green | |
2015-06-18 | Change license text to APLv2 | Bruce Yinhe | |
2015-06-18 | Merge branch 'hb/dialyzer/fix_opaque_types/OTP-12493' | Hans Bolinder | |
* hb/dialyzer/fix_opaque_types/OTP-12493: dialyzer: Expand opaque types before other types | |||
2015-06-18 | dialyzer: Expand opaque types before other types | Hans Bolinder | |
Opaque types need to be expanded before record field types, otherwise any() could be used for opaque types. | |||
2015-06-18 | Fix decode of Grouped AVPs containing errors | Anders Svensson | |
RFC 6733 says this of Failed-AVP in 7.5: In the case where the offending AVP is embedded within a Grouped AVP, the Failed-AVP MAY contain the grouped AVP, which in turn contains the single offending AVP. The same method MAY be employed if the grouped AVP itself is embedded in yet another grouped AVP and so on. In this case, the Failed-AVP MAY contain the grouped AVP hierarchy up to the single offending AVP. This enables the recipient to detect the location of the offending AVP when embedded in a group. It says this of DIAMETER_INVALID_AVP_LENGTH in 7.1.5: The request contained an AVP with an invalid length. A Diameter message indicating this error MUST include the offending AVPs within a Failed-AVP AVP. In cases where the erroneous AVP length value exceeds the message length or is less than the minimum AVP header length, it is sufficient to include the offending AVP header and a zero filled payload of the minimum required length for the payloads data type. If the AVP is a Grouped AVP, the Grouped AVP header with an empty payload would be sufficient to indicate the offending AVP. In the case where the offending AVP header cannot be fully decoded when the AVP length is less than the minimum AVP header length, it is sufficient to include an offending AVP header that is formulated by padding the incomplete AVP header with zero up to the minimum AVP header length. The AVPs placed in the errors field of a diameter_packet record are intended to be appropriate for inclusion in a Failed-AVP, but neither of the above paragraphs has been followed in the Grouped case: the entire faulty AVP (non-faulty components and all) has been included. This made it impossible to identify the actual faulty AVP in all but simple case. This commit adapts the decode to the RFC, and implements the suggested single faulty AVP, nested in as many Grouped containers as required. The best-effort decode of Failed-AVP in answer messages, initially implemented in commit 0f9cdbaf, is also applied. | |||
2015-06-17 | Simplify logic | Anders Svensson | |
Testing is_failed() is unnecessary since put/2 a second time will return a previously put 'true'. | |||
2015-06-17 | Simplify logic | Anders Svensson | |
Failed == undefined implies is_failed() == true. This was true even when the code was written, in commit c2c00fdd. | |||
2015-06-17 | Merge branch 'egil/fix-erts_debug-disasm-select_tuple_arity' | Björn-Egil Dahlberg | |
* egil/fix-erts_debug-disasm-select_tuple_arity: erts: Fix erts_debug:df/1 in debug | |||
2015-06-17 | Merge branch 'sverk/poll-grow' | Sverker Eriksson | |
* sverk/poll-grow: erts: Refactor growth of fd tables | |||
2015-06-17 | erts: Refactor growth of fd tables | Sverker Eriksson | |
to have one common implementation for both _kp and _nkp. | |||
2015-06-17 | Merge branch 'egil/cuddle-tests' | Björn-Egil Dahlberg | |
* egil/cuddle-tests: kernel: Remove ?line macros in inet_SUITE:t_gethostbyaddr/1 erts: Tweak statistics_SUITE:scheduler_wall_time/1 | |||
2015-06-17 | Merge branch 'egil/refactor-close' | Björn-Egil Dahlberg | |
* egil/refactor-close: erts: Add brackets to statement | |||
2015-06-17 | erts: Add brackets to statement | Björn-Egil Dahlberg | |
2015-06-17 | Merge branch 'egil/change-event-default/OTP-12849' | Björn-Egil Dahlberg | |
* egil/change-event-default/OTP-12849: erts: Do not preallocate too large event pool | |||
2015-06-17 | Merge branch 'egil/license-compliance/OTP-12848' | Björn-Egil Dahlberg | |
* egil/license-compliance/OTP-12848: Revert "lcnt: Let runq locks reflect actual call location" Revert "Demote rare debug slogan of message discarding to debug build" Revert "Add missing error string to syslog logging in epmd" Revert "Add run queue index to process dump info" Revert "Add thread index to allocator enomem dump slogan" Revert "Add number of entries to mnesia copy debug message" | |||
2015-06-17 | Merge branch 'legoscia/dbg-doc' | Henrik Nord | |
* legoscia/dbg-doc: Fix markup in dbg.xml | |||
2015-06-17 | Fix markup in dbg.xml | Magnus Henoch | |
Put the name of the functions linked to inside the seealso tag, not the word "see". | |||
2015-06-17 | Update appup for 18 | Anders Svensson | |
2015-06-17 | Fix release note typo | Anders Svensson | |
2015-06-17 | Fix comment typo | Anders Svensson | |
2015-06-17 | Merge branch 'rickard/io-bytes/OTP-12842' | Rickard Green | |
* rickard/io-bytes/OTP-12842: Save IO bytes in scheduler specific data | |||
2015-06-17 | Merge branch 'egil/lcnt-refactor/OTP-12846' | Björn-Egil Dahlberg | |
* egil/lcnt-refactor/OTP-12846: erts: Refactor LCNT | |||
2015-06-17 | erts: Fix erts_debug:df/1 in debug | Björn-Egil Dahlberg | |
Sentinels in select_tuple_arity instructions are not proper tuple arities and thus cannot be checked in debug. Print them as small integers instead. | |||
2015-06-17 | Merge branch 'egil/fix-compiler-beam_bool/OTP-12844' | Björn-Egil Dahlberg | |
* egil/fix-compiler-beam_bool/OTP-12844: compiler: Add regressions_SUITE compiler: Fix beam_bool pass for get_map_elements | |||
2015-06-17 | compiler: Add regressions_SUITE | Björn-Egil Dahlberg | |
regressions_SUITE will have code snippets which previously crashed the compiler. This commits includes a test for Maps crash in beam_bool. | |||
2015-06-17 | compiler: Fix beam_bool pass for get_map_elements | Björn-Egil Dahlberg | |
Before beam_split the get_map_elements instruction is still in blocks and the helper function in beam_jump did not reflect this. Reported-by: Quviq twitter account | |||
2015-06-17 | Merge branch 'nybek/fix_so_linger_zero__simple' | Raimo Niskanen | |
* nybek/fix_so_linger_zero__simple: Update prim_inet.beam Fix socket option {linger, {true, 0}} to abort TCP connections Apply 'show_econnreset' socket option to send errors as well Add 'show_econnreset' TCP socket option | |||
2015-06-17 | Save IO bytes in scheduler specific data | Rickard Green | |
2015-06-16 | Revert "lcnt: Let runq locks reflect actual call location" | Björn-Egil Dahlberg | |
This reverts commit efefd4bfda3156c6c19a61d7aa3d2f50a026d0e5. Conflicts: erts/emulator/beam/erl_process.h | |||
2015-06-16 | Revert "Demote rare debug slogan of message discarding to debug build" | Björn-Egil Dahlberg | |
This reverts commit 38bd20f4f58e8025bd3ffc718cb7e40a4bde6396. | |||
2015-06-16 | Revert "Add missing error string to syslog logging in epmd" | Björn-Egil Dahlberg | |
This reverts commit e2c11e89563f0c11794c91193b29bce00ca9c740. | |||
2015-06-16 | Revert "Add run queue index to process dump info" | Björn-Egil Dahlberg | |
This reverts commit 345af4a0c8d68b9369c3556fa6d911854c123d3f. | |||
2015-06-16 | Revert "Add thread index to allocator enomem dump slogan" | Björn-Egil Dahlberg | |
This reverts commit 5d5f9c1857029d7e8e1de141e29d20dd3de929be. | |||
2015-06-16 | erts: Do not preallocate too large event pool | Björn-Egil Dahlberg | |
A pool size of 4000 is too excessive for the common case. Change ERTS_TS_EV_ALLOC_DEFAULT_POOL_SIZE to 2048 Change ERTS_TS_EV_ALLOC_POOL_SIZE to 32 | |||
2015-06-16 | Merge branch 'ia/ssl/test-cuddle' | Ingela Anderton Andin | |
* ia/ssl/test-cuddle: ssl: Remove unnecessary suite callback | |||
2015-06-16 | erts: Refactor LCNT | Björn-Egil Dahlberg | |
2015-06-16 | Merge branch 'rickard/glb-inline' | Rickard Green | |
* rickard/glb-inline: Unbreak global inlining | |||
2015-06-16 | Merge branch 'hirotnk/fun-doc-syntax-ref' | Zandra Hird | |
* hirotnk/fun-doc-syntax-ref: Add the link to Fun expressions manual page | |||
2015-06-16 | Merge branch 'mururu/fix-typo' | Zandra Hird | |
* mururu/fix-typo: Fix typo in comment | |||
2015-06-16 | Fix typo in comment | Yuki Ito | |
2015-06-16 | Merge branch 'nybek/fix_supervisor_get_childspec' | Zandra Hird | |
* nybek/fix_supervisor_get_childspec: Fix supervisor:get_childspec/2 for simple_one_for_one OTP-12841 |