lwIP - A Lightweight TCP/IP stack - Bugs: bug #50075, TCP_OVERSIZE fails on...
You are not allowed to post comments on this tracker with your current authentication level.
bug #50075: TCP_OVERSIZE fails on tcp_rexmit_rto()
Submitter: | Simon Goldschmidt <goldsimon> | ||
Submitted: | Wed 18 Jan 2017 10:18:35 AM UTC | ||
Category: | TCP | Severity: | 3 - Normal |
Item Group: | Faulty Behaviour | Status: | Invalid |
Privacy: | Public | Assigned to: | goldsimon |
Open/Closed: | Closed | Planned Release: | 2.0.2 |
lwIP version: | git head |
Jump to the original submission
Wed 08 Feb 2017 09:06:39 PM UTC, comment #8: |
Simon Goldschmidt <goldsimon> |
Tue 31 Jan 2017 05:06:04 AM UTC, comment #7: Regarding comment #5,
|
Axel Lin <axellin> |
Tue 24 Jan 2017 09:46:23 AM UTC, comment #6: I have tested adding debug code to check if it possible pcb->unsent_oversize !=0 when pcb->unsent is NULL in these places. And it never happened.
|
Axel Lin <axellin> |
Tue 24 Jan 2017 09:41:27 AM UTC, comment #5: OK, thanks for explaining the tcp_rexmit_rto() part. However, see patch #8237 why that code is necessary. We'd have to reset "seg->oversize_left" of that segment to get rid of this code or an assertion matching "seg->oversize_left" vs "pcb->unsent_oversize" fails.
|
Simon Goldschmidt <goldsimon> |
Wed 18 Jan 2017 08:54:15 PM UTC, comment #4: seg->oversize_left is set to 0 before adding seg to unacked list.
|
Axel Lin <axellin> |
Wed 18 Jan 2017 08:43:31 PM UTC, comment #3: I don't get it, shouldn't we reset unsent_oversized to zero in this case instead of doing nothing? You said you had a problem with this being disable when DBGCHECK is disabled and now you want to completely remove the code?? |
Simon Goldschmidt <goldsimon> |
Wed 18 Jan 2017 11:35:15 AM UTC, comment #2: Hi Simon,
|
Axel Lin <axellin> |
Wed 18 Jan 2017 10:23:44 AM UTC, comment #1: Proposed fix: set pcb->unsent_oversize to zero for "TCP_OVERSIZE && !TCP_OVERSIZE_DBGCHECK" in this case. |
Simon Goldschmidt <goldsimon> |
Wed 18 Jan 2017 10:18:35 AM UTC, original submission:
When TCP_OVERSIZE_DBGCHECK is disabled, pcb->unsent_oversize might not be updated in tcp_rexmit_rto().
|
Simon Goldschmidt <goldsimon> |
Depends on the following items: None found
Items that depend on this one: None found
There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.
Follow 4 latest changes.
Date | Changed by | Updated Field | Previous Value | => | Replaced by |
---|---|---|---|---|---|
2017-02-08 | goldsimon | Status | None | Invalid | |
Open/Closed | Open | Closed | |||
2017-01-18 | goldsimon | Status | In Progress | None | |
2017-01-18 | axellin | Attached File | - | Added 0001-tcp_out-Don-t-reset-pcb-unsent_oversize-when-requeue.patch, #39500 |
Powered by Savane 3.13-d3ae.
Corresponding source code
You have not hit that assert because since somewhere in 2011, we set oversize_left to 0 for every segment sent (via tcp_output_segment). Still I think it's more correct to leave it like it is (if the previous statement shouldn't hold in the future).