signetlabdei/quic-ns-3

SIGFPE in QuicCongestionControl (DRAFT 10)

Closed this issue · 1 comments

tnull commented

With QUIC_VERSION_DRAFT10 or QUIC_VERSION_NS3_IMPL, ns-3 crashes for me through a division by zero (see attached backtrace from lldb).

The source seems to be https://github.com/signetlabdei/quic/blob/master/model/quic-congestion-ops.cc#L235:

tcbd->m_cWnd += tcbd->m_segmentSize * ackedPacket->m_packet->GetSize ()
        / tcbd->m_cWnd;

I'm not 100% sure what the optimal fix would be, maybe just not dividing by tcbd->m_cWnd, if it is 0?:

if (tcbd->m_cWnd > 0) {
    tcbd->m_cWnd += tcbd->m_segmentSize * ackedPacket->m_packet->GetSize ()
            / tcbd->m_cWnd; 
} else {
    tcbd->m_cWnd += tcbd->m_segmentSize * ackedPacket->m_packet->GetSize ();
}
tnull commented

This issue should be addressed by signetlabdei/quic#12