lwIP - A Lightweight TCP/IP stack - Bugs: bug #49533, TCP connection deadlocks upon...
You are not allowed to post comments on this tracker with your current authentication level.
bug #49533: TCP connection deadlocks upon dropped window update due to not filling window
Submitter: | Joel Cunningham <jcunningham> | ||
Submitted: | Fri 04 Nov 2016 06:40:18 PM UTC | ||
Category: | TCP | Severity: | 3 - Normal |
Item Group: | Faulty Behaviour | Status: | Fixed |
Privacy: | Public | Assigned to: | jcunningham |
Open/Closed: | Closed | Planned Release: | None |
lwIP version: | git head |
Jump to the original submission
Wed 16 Nov 2016 03:19:09 PM UTC, comment #10: |
Joel Cunningham <jcunningham> |
Wed 16 Nov 2016 08:11:58 AM UTC, comment #9:
|
Simon Goldschmidt <goldsimon> |
Tue 15 Nov 2016 02:53:31 PM UTC, comment #8: tcp_output() is called from tcp_input(), so the logic will execute in the case you described.
|
Joel Cunningham <jcunningham> |
Tue 15 Nov 2016 11:36:41 AM UTC, comment #7: Your patch starts the persist timer in tcp_output(). I wonder if that is enough. Couldn't we come into the same siatuation when we receive a window that is smaller than the next segment to be sent?
|
Simon Goldschmidt <goldsimon> |
Mon 14 Nov 2016 09:56:13 PM UTC, comment #6: Simon,
|
Joel Cunningham <jcunningham> |
Mon 14 Nov 2016 03:57:13 PM UTC, comment #5: Let me sum up what I think would be correct behavior for lwIP:
|
Simon Goldschmidt <goldsimon> |
Mon 14 Nov 2016 03:53:36 PM UTC, comment #4:
|
Simon Goldschmidt <goldsimon> |
Mon 14 Nov 2016 03:27:56 PM UTC, comment #3: Simon,
|
Joel Cunningham <jcunningham> |
Mon 14 Nov 2016 10:20:57 AM UTC, comment #2: The patch looks written well, but it's still a lot of code. Can't we instead use the persist timer here by starting it when we enter such a condition where we can't send because of segment sizes?
|
Simon Goldschmidt <goldsimon> |
Fri 11 Nov 2016 02:27:29 PM UTC, comment #1: Simon,
|
Joel Cunningham <jcunningham> |
Fri 04 Nov 2016 06:40:18 PM UTC, original submission:
This bug continues the discussion that happened way back in bug #34517 where it was identified that if LwIP receives a window value smaller than the current unsent segment and there is no unacknowledged data, LwIP won't send and the subsequent window update can be dropped. When the update is dropped, the connection deadlocks because we didn't fill the window entirely and engage zero window probing
|
Joel Cunningham <jcunningham> |
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 6 latest changes.
Date | Changed by | Updated Field | Previous Value | => | Replaced by |
---|---|---|---|---|---|
2016-11-16 | jcunningham | Status | In Progress | Fixed | |
Open/Closed | Open | Closed | |||
2016-11-14 | jcunningham | Status | None | In Progress | |
Assigned to | None | jcunningham | |||
2016-11-14 | jcunningham | Attached File | - | Added 0001-bug-49533-start-persist-timer-when-unsent-seg-can-t-.patch, #38961 | |
2016-11-04 | jcunningham | Attached File | - | Added 0001-TCP-fill-send-window-completely-when-no-data-is-infl.patch, #38890 |
Powered by Savane 3.13-3230.
Corresponding source code
Patch committed in f79eabd24b0b266d0263b331afdc4df1fc545e22