Description of problem: Two programs. One a simple client selecting on a file descriptor for writing, and the other a simple server that accepts new connections but never reads the socket. When the socket opened as socket(AF_INET, SOCK_STREAM, IPPROTO_TCP), the select in the client correctly shows the socket unavailable for writing once the write window is full. However, when the socket is opened as socket( AF_INET, SOCK_STREAM, IPPROTO_SCTP), then the select always reports that the socket is available for writing. (This occurs regardless of whether the socket was blocking or non-blocking.) Version-Release number of selected component (if applicable): lksctp-tools-1.0.6-1.el5.1 How reproducible: Every time. Steps to Reproduce: 1. Open server stream, sctp socket and accept new connections, but never read from the connection. 2. Open client, stream, sctp socket (either blocking or non-blocking) and do select on write of fd, then write if able. 3. select will always report socket as writable. Actual results: Select will always report socket as writable (with sctp), works with tcp. Expected results: When the send window is closed, the socket is not writable and the file descriptor should not be included in the writable fd_set. Additional info:
Hello, do you have a source code for a simple client and server which you described above? If so, please add this source code here as an attachment. Otherwise I will write small applications by myself. Thanks.
Grr. I can't get the stupid thing to fail now. When I can figure out how to reproduce it again, I'll follow up.
I'm closing this bug, because neither I nor reporter can reproduce it.
We've migrated from lksctp 1.0.6 (part of RHEL5) to lksctp 1.0.9 (from sf.net) and a number of other problems that we've had w/ sctp have been resolved.