Description of problem: I'm using SOCK_STREAM TCP sockets. Imagine server-client application. - Server will accept connection from client. - Client sends some data to server -> server receives data. - Client then half-closes the TCP connection using shutdown(fd, SHUT_WR). - Client waits for some data from the server. - Server sends some data to client -> client receives data. - Client exits and closes the socket. - After some time server tries to send some data to the client. - The first send() call returns success even the Client's response is RST. Version-Release number of selected component (if applicable): 3.7.7-201.fc18.x86_64 How reproducible: always Steps to Reproduce: 1. download attached client/server sources. 2. compile server: # gcc tcp_server.c -o server 3. compile client: # gcc tcp_client.c -o client 4. run the server: # ./server 5. run the client: # ./client Actual results: Server started... Created SOCK_STREAM socket Bound to localhost:6666 waiting for connection... Client connected! Waiting for some data from client Received: "MSG from client" Received EOF Sending msg to client: "MSG from server" sleep(5) Sending 1 msg to client: "MSG from server" try #1 send() result: (0) Success Sending 2 msg to client: "MSG from server" try #2 send() result: (32) Broken pipe Server exiting... Expected results: Server should fail to send() data right after sleep(). Server started... Created SOCK_STREAM socket Bound to localhost:6666 waiting for connection... Client connected! Waiting for some data from client Received: "MSG from client" Received EOF Sending msg to client: "MSG from server" sleep(5) Sending 1 msg to client: "MSG from server" try #1 send() result: (32) Broken pipe Server exiting... Additional info: RST answer means that data were NOT delivered. Therefore the very first send() call after server sleep() should fail!
Created attachment 698913 [details] Client source
Created attachment 698914 [details] Server source
Still an issue on 3.7.8-202.fc18.x86_64.
can you report this to netdev.org ? Dealing with the networking developers directly is likely to get your problem fixed a lot faster than us acting as man-in-the-middle here.
(In reply to comment #4) > can you report this to netdev.org ? Dealing with the networking > developers directly is likely to get your problem fixed a lot faster than us > acting as man-in-the-middle here. I did. Thank you.
Since send() is not blocking AND send() returning success does not mean that data were delivered is not a Bug. Closing as NOTABUG.