lwIP - A Lightweight TCP/IP stack - Bugs: bug #24830, Socket never closed sometimes.
You are not allowed to post comments on this tracker with your current authentication level.
bug #24830: Socket never closed sometimes.
Submitter: | Homyak <onlyslon> | ||
Submitted: | Thu 13 Nov 2008 04:55:54 PM UTC | ||
Category: | TCP | Severity: | 3 - Normal |
Item Group: | None | Status: | Fixed |
Privacy: | Public | Assigned to: | kieranm |
Open/Closed: | Closed | Planned Release: | None |
lwIP version: | CVS Head |
Jump to the original submission
Mon 11 Jan 2010 04:45:04 PM UTC, comment #8: |
Simon Goldschmidt <goldsimon> |
Mon 26 Oct 2009 08:36:41 AM UTC, comment #7: I think I have accidentally fixed part of the problem here: TCP_EVENT_RECV() did not call tcp_recved() if pcb->recv was NULL (which it is after closing a socket), which means the window closes eventually and doesn't reopen.
|
Simon Goldschmidt <goldsimon> |
Fri 01 May 2009 12:33:20 PM UTC, comment #6: I think that as this potentially involves changes to the lwIP API we'd be better postponing the fix till 1.4.0 |
Kieran Mansley <kieranm> |
Tue 31 Mar 2009 03:03:15 PM UTC, comment #5: Now I come to think about how to fix this, there is a minor problem: data can be buffered on RX at lots of levels in the stack (within the TCP layer, netconn layer, and sockets layer). Therefore tcp_close() needs to know if there are any bytes buffered in the higher layers, but it would be hard for it to work this out. I therefore think adding a parameter that gets filtered down through the layers that says "there is buffered data in the layer(s) above", and then passed to netconn_delete() and tcp_close() would be a good idea. However, this changes the API and so causes problems that way.
|
Kieran Mansley <kieranm> |
Fri 13 Feb 2009 10:16:23 AM UTC, comment #4: Sorry for the delay in responding to this.
|
Kieran Mansley <kieranm> |
Sat 15 Nov 2008 12:02:12 PM UTC, comment #3: A full session is in Attacements. |
Homyak <onlyslon> |
Fri 14 Nov 2008 08:41:00 PM UTC, comment #2: I am sorry that did not specify some details.
|
Homyak <onlyslon> |
Fri 14 Nov 2008 08:53:49 AM UTC, comment #1: Looks like one end (not sure which, you don't say which is lwIP) has advertised a zero window and is refusing to open it. This is probably preventing the other end from sending a FIN, and so the connection never gets closed. If you can get a packet capture for the whole duration that would be useful.
|
Kieran Mansley <kieranm> |
Thu 13 Nov 2008 04:55:54 PM UTC, original submission:
Hello, I use lWip from Linux.
|
Homyak <onlyslon> |
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 7 latest changes.
Date | Changed by | Updated Field | Previous Value | => | Replaced by |
---|---|---|---|---|---|
2010-01-11 | goldsimon | Status | None | Fixed | |
Open/Closed | Open | Closed | |||
2009-05-01 | kieranm | Planned Release | 1.3.1 | 1.4.0 | |
2009-03-31 | kieranm | Assigned to | None | kieranm | |
2009-02-13 | kieranm | Planned Release | 1.3.1 | ||
2008-11-15 | onlyslon | Attached File | - | Added gmaps.raw, #16846 | |
2008-11-13 | onlyslon | Attached File | - | Added lwip.pcap, #16841 |
Powered by Savane 3.13-d3ae.
Corresponding source code
Kieran, I hope you don't mind me closing this as fixed:
Since the actual bug is fixed, I've added a new task to not forget implementing close() vs. shutdown() correctly:
task #10088: Sockets: Correctly implement close() vs. shutdown()