A riddle for the students! :-)


Cronologico Percorso di conversazione 
  • From: Michael Welzl < >
  • To:
  • Subject: A riddle for the students! :-)
  • Date: Sun, 7 Jan 2018 14:25:57 +0100

Hey all,

I just “fixed” the last (?  hopefully! ) problem, it seems - but this fix seems to me to be the ugliest way of fixing a bug, EVER …
because: there’s an “assert” statement in the code, and that assert can fail - now, if I just comment that line away, things go well   :-)

I can’t reproduce the error in simulations, it seems to only occur in real life, which indicates to me that this is a SACK receiver behavior from the real Linux TCP that the ns-3 sender doesn’t expect. I don’t know…

The precise line is:
NS_ASSERT ((*(m_sentList.begin ()))->m_sacked == false);

in the file:
in tcp-tx-buffer.cc

If you have too much time on your hands - could one of you help me figure out, just by reading this line, if breaking this assertion is really really dangerous and bad, or if it’s just a matter of the developers being too strict about what they expect from the receiver?
It’s a little tricky to understand - hence it’s a riddle  :-)

If this doesn’t lead to further errors, I’ll just leave it like that for now and be happy, but simply commenting an assertion line away makes me uneasy…

Cheers,
Michael



  • A riddle for the students! :-), Michael Welzl

Archivio con motore MhonArc 2.6.16.

§