Page MenuHomeFreeBSD

TCP PRR: Patch div/0 in tcp_prr_partialack

Authored by rscheff on Jan 24 2021, 9:26 PM.
Referenced Files
Unknown Object (File)
Sat, Nov 25, 4:27 PM
Unknown Object (File)
Oct 10 2023, 7:13 PM
Unknown Object (File)
Oct 2 2023, 2:59 PM
Unknown Object (File)
Aug 15 2023, 4:24 AM
Unknown Object (File)
Aug 12 2023, 8:19 AM
Unknown Object (File)
Jul 8 2023, 10:10 PM
Unknown Object (File)
Jul 2 2023, 2:09 AM
Unknown Object (File)
Jul 1 2023, 10:48 AM



With clearing of recover_fs in bc7ee8e5bc555, div/0
was observed while processing partial_acks.

Suspect that rewind of an erraneous RTO may be
causing this - with the above change, recover_fs
would no longer retained at the last calculated
value, and reset. But CC_RTO_ERR can reenable
IN_RECOVERY(), without setting this again.

Adding a safety net prior to the division in that
function, which I missed in D28114.

Adding line wraps in that PRR block.

Diff Detail

rS FreeBSD src repository - subversion
Lint Passed
No Test Coverage
Build Status
Buildable 36462
Build 33351: arc lint + arc unit

Event Timeline

  • retain recover_fs past recovery, in case of RTO rollback

LGTM, both places where the division happens are now protected.
We are testing it now with public traffic (~ 8 hours), looks good so far.

I would suggest to separate the whitspace changes and the functional changes into two commits.

This revision is now accepted and ready to land.Jan 25 2021, 10:40 AM

Adjust line length in tcp_prr_partialack, no functional change.

This revision now requires review to proceed.Jan 25 2021, 11:15 AM
  • separate out whitespace changes

LGTM, now both places with the division are protected.
As mentioned earlier, our live test runs fine for now (>12 hours).

This revision is now accepted and ready to land.Jan 25 2021, 1:25 PM