[erlang-questions] need help with a DIAMETER test case

Andreas Schultz andreas.schultz@REDACTED
Mon Sep 16 17:14:23 CEST 2019


I need some insight with the test case for this change:
https://github.com/RoadRunnr/otp/commit/6f54f71d3b4db3199d49fbb64d113563dd13b21e

 What it is supposed to fix is:

> Two consecutive DIAMETER messages with just the right combination of
fragmentation and delay would cause the fragment_timeout to trigger on the
wrong fragment and flush it.

The test case fails because the second message is not received back
completely. After digging through the code and adding lots of debug output
it appears as if gen_tcp does not deliver the pending data in time (within
50ms) after a setopts(Socket, [{active, once}]).

I have left the log messages in place to be able to trace the problem. And
they seem to confirm that the tail part of the second message in the test
is not being delivered to the transport module. A PCAP shows that is data
is send over the wire at the expected moment, so the delay can't be there.
Comparing the timestamps in the PCAP with the timestamps in the log
confirms that the first and second part are received.

At this point I'm not sure whether the transport module is doing something
strange or if gen_tcp is not delivering the data in time (or at all).

Many thanks
Andreas
-- 

Andreas Schultz

-- 

Principal Engineer

t: +49 391 819099-224

------------------------------- enabling your networks
-----------------------------

Travelping GmbH

Roentgenstraße 13

39108 Magdeburg

Germany

t: +49 391 819099-0

f: +49 391 819099-299

e: info@REDACTED

w: https://www.travelping.com/

Company registration: Amtsgericht Stendal  Reg. No.: HRB 10578
Geschaeftsfuehrer: Holger Winkelmann VAT ID: DE236673780
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20190916/85473262/attachment.htm>


More information about the erlang-questions mailing list