Red Hat Bugzilla – Bug 446715
select always reports sctp sockets available for writing
Last modified: 2008-08-22 16:27:52 EDT
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):
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.
Select will always report socket as writable (with sctp), works with tcp.
When the send window is closed, the socket is not writable and the file
descriptor should not be included in the writable fd_set.
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.
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.