need help with a DIAMETER test case

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

need help with a DIAMETER test case

Andreas Schultz-3
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: [hidden email]

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

   
Company registration: Amtsgericht Stendal  Reg. No.: HRB 10578
Geschaeftsfuehrer: Holger Winkelmann VAT ID: DE236673780

 


_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions