Page MenuHomeFreeBSD

TCP PRR: Patch div/0 in tcp_prr_partialack
ClosedPublic

Authored by rscheff on Jan 24 2021, 9:26 PM.
Tags
None
Referenced Files
Unknown Object (File)
Jan 27 2024, 7:46 AM
Unknown Object (File)
Jan 20 2024, 8:38 PM
Unknown Object (File)
Jan 20 2024, 8:03 PM
Unknown Object (File)
Dec 20 2023, 3:25 AM
Unknown Object (File)
Dec 10 2023, 12:41 PM
Unknown Object (File)
Nov 25 2023, 4:27 PM
Unknown Object (File)
Oct 10 2023, 7:13 PM
Unknown Object (File)
Oct 2 2023, 2:59 PM
Subscribers

Details

Summary

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

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 36461
Build 33350: 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