Page MenuHomeFreeBSD

Hung sessions
ClosedPublic

Authored by rrs on May 13 2020, 3:18 PM.
Tags
None
Referenced Files
Unknown Object (File)
Jan 9 2024, 8:50 PM
Unknown Object (File)
Jan 6 2024, 11:33 PM
Unknown Object (File)
Dec 20 2023, 3:58 AM
Unknown Object (File)
Dec 18 2023, 9:28 PM
Unknown Object (File)
Dec 3 2023, 12:08 PM
Unknown Object (File)
Sep 26 2023, 1:25 AM
Unknown Object (File)
Sep 17 2023, 1:50 PM
Unknown Object (File)
Sep 15 2023, 4:25 PM
Subscribers

Details

Reviewers
tuexen
Group Reviewers
transport
Summary

Michael Tuexen as came up with a test case where rack ends with a stuck session. It rotates
around the TCP-FO. The problem is a return(0) and not a walk through the normal just-return
path.. special for SYN-Sent/SYN-Rcvd and FO.

This change fixes that. The attached program is a reproducer that Michael sent me. With the
fix the session now is no longer stuck.

Test Plan

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

rrs requested review of this revision.May 13 2020, 3:18 PM

Except for the whitespace issue, I'm fine with it.

FreeBSD/sys/netinet/tcp_stacks/rack.c
12122 ↗(On Diff #71719)

Are the trailing whitespaces intended?

Looks like BBR has the same issue, and we need to strip trailing emacs presents too :)

Opps used the wrong goto label...

This revision is now accepted and ready to land.May 14 2020, 6:09 PM

Let's also fix the accounting panic that skyzaller is finding here too. When we are in a front
state and have a SYN outstanding that should count in the ctf_outstanding size. Also if
we have sent a FIN same thing.

This revision now requires review to proceed.May 15 2020, 4:48 AM

And even yet another issue thanks to skyzaller in bbr.. the rc_lost when doing TCP-FO was incorrect in rxt timers.

One little other niggle that I noticed, we should not do a goto again if the SYN bit is set ...

We should not ever do GP measurements until we are established

This revision is now accepted and ready to land.May 15 2020, 1:07 PM